我正在使用 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/