2017-04-11 33 views
1

如果在編譯時沒有使用「-g」標誌的可執行文件上使用gdb,您仍然可以調試嗎?如果是這樣,與調試使用「-g」編譯的可執行文件相比,您會看到什麼區別?使用gdb而無需使用「-g」標誌編譯

+2

是的,你可以。你試過了嗎? –

回答

5

gcc中添加-g選項可以添加調試符號和信息。然後,在調試時,顯示的信息更具人性化可讀性。

從操作系統的本機格式(刺,COFF,XCOFF,或DWARF)的online manual

-g

產生調試信息。 GDB可以使用這個調試信息。

在大多數使用stabs格式的系統上,-g啓用只有GDB才能使用的額外調試信息;這些額外的信息使得GDB中的調試工作更好,但可能會使其他調試器崩潰或拒絕讀取程序。如果你想控制某些是否生成額外的信息,使用-gstabs +,-gstabs,-gxcoff +,-gxcoff,或-gvms

例如,對於二進制,使用-g編制而成的,gdb運行可以顯示函數名稱,而沒有-g,你只會看到函數指針(地址)。