我試圖在gdb上運行我的應用程序。因此我使用'g'選項編譯它。但是,當我跑步時我gdb ./app
得到:gdb問題中的C程序調試
DW_FORM_strp pointing outside of .debug_str section [in module /home/w/app]
我不能做任何破發:
(gdb) break main
No symbol table is loaded. Use the "file" command.
(gdb) .
我試圖在gdb上運行我的應用程序。因此我使用'g'選項編譯它。但是,當我跑步時我gdb ./app
得到:gdb問題中的C程序調試
DW_FORM_strp pointing outside of .debug_str section [in module /home/w/app]
我不能做任何破發:
(gdb) break main
No symbol table is loaded. Use the "file" command.
(gdb) .
最有可能你已經與海灣合作委員會的新版本編譯的程序,但它的調試與舊的GDB。
否則,你有一個錯誤的GCC版本,它將不正確的調試信息放到你的可執行文件中。
使用objdump -W
來查看Elf文件的Dwarf調試信息以查看.debug_str
表。
每個DW_FORM_strp
是此表中的偏移量。
與-g
(或-g-dwarf2
)編譯放入每個目標文件 矮信息與它自己的.debug_str
節串部分。
使用-g鏈接這些目標文件會嘗試創建唯一的字符串,並且不會正確更新所有的DW_FORM_strp
偏移量。看到gcc 4.3.4的ld。
我們偶然將CC_FLAGS
設置爲makefile鏈接步驟。
解決方法:不要鏈接-g
標誌。
'ld'手冊頁說'-g'被忽略。 – 2013-08-02 17:54:13
什麼操作系統和CPU?您是否曾嘗試使用簡單的「Hello World」測試應用程序來運行gdb,以確保您的基本gcc/gdb工具鏈已安裝並正常工作? – 2010-05-04 12:14:35