1
我正在使用gdb在Linux中進行調試。但是,當我設置的斷點這樣b d::~d
,控制檯將返回:當由GDB設置斷點時,函數「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 ::成功天。 後,我輸入 'I B',控制檯將返回:在../xh:65
的行號是正確的,d ::得到()
斷點保持ÿ0x0000000000577a6c,但函數名稱是錯誤的。
你有沒有試過讓析構函數變成虛擬的?這可能不是原因,但它仍然是一個非虛擬析構函數的潛在錯誤。 – Hayt
謝謝,但由於某種原因,我現在無法做到這一點。@ Hayt –
不知道你爲什麼不能'bd ::〜d',但你可以嘗試設置一個特定行號的斷點特定文件 – alexeykuzmin0