用gdb調試程序的時候,當遇到外部符號的時候,比如:來自靜態庫或者來自動態庫的時候,我們想用s命令跳進去看看外部某個函數的實現。
這個時候,如果該程序鏈接的外部庫,沒有調試信息(編譯的時候,沒帶-g,沒有生產調試信息),gdb的默認行為是跳過該符號。
那我們怎么確定程序鏈接的庫是否包含調試信息(當然,正式release的庫都是去掉調試信息的)。
- 對於靜態庫,采用nm --debug-syms libxx.a
- 對於動態庫,采用 gdb mylib.so
用gdb調試程序的時候,當遇到外部符號的時候,比如:來自靜態庫或者來自動態庫的時候,我們想用s命令跳進去看看外部某個函數的實現。
這個時候,如果該程序鏈接的外部庫,沒有調試信息(編譯的時候,沒帶-g,沒有生產調試信息),gdb的默認行為是跳過該符號。
那我們怎么確定程序鏈接的庫是否包含調試信息(當然,正式release的庫都是去掉調試信息的)。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。