c++ - GDB设置断点时未定义函数 "d::~d"

标签 c++ linux debugging gdb breakpoints

我正在使用 gdb 在 Linux 中进行调试。但是当我像这样设置断点时 b d::~d,控制台返回:

Function "d::~d" not defined

我无法在析构函数中设置断点。 这是示例代码:

class b
{
  protected:
   ...
  public:
  b(){
  ...
  }
  ~b() {
  ...
  }
  ...
} ;

class d: public b{ 
  protected:
  ...
  public:
  d(){
  ...
  }
  ~d() {
  ...
  }
  ...
  p* get(){...};
} ;

但是,我在b::b、b::~b和d::d的断点设置成功了。 在我输入“i b”后,控制台返回:

breakpoint keep y 0x0000000000577a6c in d::get() at ../x.h:65

行号是对的,但是函数名是错的。

最佳答案

如果你将它改写成这样呢?

class b
{
  protected:
   ...
  public:
  b(){
  ...
  }
  virtual ~b() {
  ...
  }
  ...
} ;

class d: public b{ 
  protected:
  ...
  public:
  d(){
  ...
  }
  ~d() {
  ...
  }
  ...
  p* get(){...};
} ;

关于c++ - GDB设置断点时未定义函数 "d::~d",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39224344/

相关文章:

linux - nginx 配置 try_files 不传输所有获取字段

linux - 从 bash 创建多个用户命名和编号的文件而不循环

java - 转置表和 Alpha-Beta 修剪

android - 我在哪里可以找到包含我的应用程序共享库符号版本的目录以使用 ndk-stack?

c++ - 对要通过 winsock 发送的结构数组(指针?)进行类型转换

c++ - 重载 * 运算符以同时在右侧和左侧工作

python - os的makedirs和mkdir有什么区别?

html - 为什么 Firefox 不会在没有错误消息的情况下启动 Css?

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c++ - 类型的类型与模板?