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/

相关文章:

c - 使用 exec 后将标准输出重定向到管道

c# - 列表在调试时不填充,直到打开

jquery - 将 Bootstrap 与 jQuery 一起使用会导致大量内存使用

c# - PowerShell 是否编译脚本?

php - 无法在 ubuntu 中安装 laravel(缺少 ext-zip)

linux - Makefile 中的 $${HOME} 或 ${HOME}?

c++ - 在 C++ 中刷新组合框?

c++ - 从 Windows 上的 lib 文件中删除符号

c++ 在 libconfig++::lookupValue() 中将类实例作为浮点变量传递

c++ - 无法在 Windows 中以编程方式 (C++) 从其他用户帐户读取文件