2012-03-12 164 views
1

我需要打印一些結構以進行調試。由於代碼庫非常龐大,我無法找到需要查看的確切成員。是否有某種方式可以打印出整個結構?或至少知道它是什麼類型的結構,以便我可以回去查看它的定義?在不知道類型的情況下打印數據?

+0

沒辦法讓gdb進入它? – hari 2012-03-12 19:20:52

+1

'p struct_var'會自動在dbx中按元素打印出整個結構元素。你想在C程序中使用它嗎? – 2012-03-12 19:21:27

+0

另外一個主題解決方案,我可以建議你 - 下載SOURCE Insight試用版http://www.sourceinsight.com/eval.html。添加您的完整項目。別擔心。 SI可以處理hugeeee項目。同步您的文件。中提琴!你會被帶到你的結構定義。 – 2012-03-12 19:34:45

回答

3

使用調試器。大多數調試器給你一個選項,可以在你遇到斷點時查看整個結構的內容。在* nix上,最流行的調試器是gdb,在Windows上,最流行的IDE(包括調試器)是Visual Studio。我所鏈接的這兩個地方都有免費的啤酒下載鏈接。

在gdb中,可以使用break命令設置斷點,一旦到達斷點,就可以使用print命令打印結構的內容。更具體地講,您可以使用包括調試數據(GCC -g標誌)編譯,然後用

$ gdb debugging_executable 
Some basic information about GDB gets printed here 
> break main.c:100 
> run 
> print struct_variable 

這也是值得研究的步驟,繼續命令。

在Visual Studio中,可以通過在源代碼行左側雙擊(在編輯器左側有一個灰色條)來設置斷點,然後將鼠標懸停在變量名稱上以檢查內容一旦你到達斷點。

相關問題