[c++] GDB中的斷點



0 Answers

  1. 沒有。
  2. 沒有。
  3. 是。

確保使用-g(調試)選項進行編譯。 確保源路徑設置正確。 使用目錄,顯示目錄和目錄命令來查看/設置。

Question

我想這可能是早些時候提出的,但我找不到滿足我要求的人。

我正在通過試圖分析各種測試套件中的代碼流來調試(試圖理解)一個大型項目。 但是當我嘗試在某些文件中設置斷點時,出現錯誤“沒有找到名稱為filename的源文件”。
所以我的問題是:

  1. gdb只能接受代碼流進入的源文件的斷點。
  2. 我可以在文件的整個行上設置類似b filename:*斷點b filename:*
  3. 頭文件斷點是否會被接受,因為頭文件只是在編譯時被附加?

任何見解都是值得歡迎的。

編輯
我用一些hello世界代碼檢查了這些問題,發現其中一個答案中指出了相同的結果,但是我在實際項目中的問題仍然存在。 即使當我看到同一行不被接受為斷點的編輯輸出,我仍然得到相同的錯誤。

編輯2
我得到它的工作,但不明白如何以及為什麼它的工作..?


(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
No source file named /home/neeraj/BTP/trunk/include/header.h:872
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b /home/neeraj/BTP/trunk/src/driver.cpp:2
Breakpoint 1 at 0x806c61a: file ../../../trunk/src/driver.cpp, line 2.
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
Breakpoint 2 at 0x8052fa0: file ../../../trunk/include/header.h:872, line 872.
(gdb)

更深刻的見解..?






Related



Tags

c++ c++   gdb