我在我的C++程序中使用GDB時遇到問題。我想爲我的類成員函數設置一個斷點,我不確定如何執行它的語法。我的程序現在正在運行,我只是想學習使用GDB。我的問題是我在線上找到的所有信息只能處理main()文件,沒有其他函數或類,如果它們涉及類,它只能使用帶有void return語句的函數。成員函數的C++ GDB斷點
我有一個二叉搜索樹類。我想在程序中的一個函數中設置一個斷點。 這是我的頭文件的部分。
class BST
{
BST()
...
private:
int add((BST * root, BST *src);
}
我正在telnet到一個命令行linux服務器的學校。 我可以使用g ++ -g * .cpp(還有其他文件可以正常工作)使用我的程序運行GDB,並將文件保存爲a.out。 我運行GDB與
gdb ./a.out
我進入GDB。我可以得到虛空顯示功能只是
b BST::disp_block()
細破發點,但我怎麼用add函數我試圖
b BST::int add(BST*, BST *)
b int BST::add(BST*, BST *)
b BST::add(BST*, BST *)
,我甚至與參數名
試圖做到這一點b BST::int add(BST * root, BST * src)
b int BST::add(BST * root, BST * src)
b BST::add(BST * root, BST * src)
,我不斷收到錯誤
Function "____" not defined.
Make break point pending on future shared library load? (y or [n])
如何爲這個成員函數設置一箇中斷點?我假設觀察點將是相同的格式,如果不是,你是否也可以解釋。
在沒有重載的情況下,或者如果你想在所有的重載中斷開,'b BST :: add'。不需要論證。請注意,如果您的類位於命名空間中,則還需要包含命名空間。 –
也可以通過文件名:linenumber在gdb中設置斷點。如果你的函數在bst.c中,在第25行,命令是: (gdb)bst.c:25 – JGroven