功能" d ::〜d"在GDB设置断点时没有定义

时间:2016-08-30 09:56:19

标签: c++ linux debugging gdb breakpoints

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

  

功能" d ::〜d"未定义

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

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

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

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

  

断点在d :: get()中保存y 0x0000000000577a6c在../ x.h:65

行号是正确的,但函数名称错误。

1 个答案:

答案 0 :(得分:0)

如果你这样重写会怎么样?

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

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