我做了一個應用程序,其中有一個文件main.c
,它使用master.c
文件中的函數。我想用gdb tool
來調試我的應用程序,以查找在master.c
文件中定義的所有功能。這是可能的,如果是這樣的話?如圖所示here如何使用gdb在特定的正在運行的應用程序的文件中調試函數?
對於實例
我做了一個應用程序,其中有一個文件main.c
,它使用master.c
文件中的函數。我想用gdb tool
來調試我的應用程序,以查找在master.c
文件中定義的所有功能。這是可能的,如果是這樣的話?如圖所示here如何使用gdb在特定的正在運行的應用程序的文件中調試函數?
對於實例
您必須編譯使用-g
標誌程序。
然後,您開始gdb your_program
並設置斷點:break master.c:37
,它將在master.c,第37行上設置斷點,或者您可以在函數break foo()
處設置斷點。
然後通過run
啓動程序,並繼續調試過程中,inspect
,continue
,watch
,display
...
http://www.gnu.org/software/gdb/
http://www.gnu.org/software/gdb/documentation/
http://www.cs.cmu.edu/~gilpin/tutorial/
谷歌更多的文檔關於使用gdb。
當然有:
使用break
:
break master.c:5
你是什麼意思的術語調試應用程序做?如果你細化這個術語,下面的答案已經回答了這個問題,或者我們可能找到一個更具體的解決方案。你想自動設置標題中定義的所有函數的斷點嗎?你想檢查所有功能的記憶嗎?或者你想通過將它們與給定輸入的特定輸出進行比較來測試這些函數嗎?這可能也有幫助:http://stackoverflow.com/questions/1504965/how-to-run-a-linux-program-line-by-line – Alex 2011-12-27 10:18:52
我想自動設置標題中定義的所有功能的斷點.. – 2011-12-27 10:29:40
http://stackoverflow.com/questions/1476002/gdb-set-breakpoint-on-all-functions-in-a-file的副本? – 2011-12-27 10:41:56