簡體   English   中英

關於符號的gdb問題

[英]gdb questions regarding symbols

我是gdb的新手。 當我調試程序時,只會得到如下所示的回溯。

Program received signal SIGSEGV, Segmentation fault.
0x000000003075a238 in ?? ()
(gdb) backtrace
#0  0x000000003075a238 in ?? ()
#1  0x00007fff72825da8 in ?? ()
#2  0x0000000000000008 in ?? ()
#3  0x000000003063c340 in ?? ()
#4  0x0000000000000000 in ?? ()
(gdb) 

我猜有一些符號信息丟失。 我收到此消息

Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found).

所以我嘗試了(gdb)符號文件/usr/lib/debug/lib/x86_64-linux-gnu/ld-2.13.so在gdb啟動時沒有幫助。

我怎么知道缺少哪個符號信息? 整個項目的代碼使用gcc -g編譯。

當您靜態編譯應用程序(gcc中為static)時,可能會發生此問題。 在這種情況下,構建計算機的庫可能與執行計算機的庫不同,並且gdb無法找到構建計算機庫的符號。

我遇到了這個問題,對我來說唯一有效的解決方案是在正在執行的同一台計算機上構建應用程序。

請參閱: GDB無法顯示堆棧,並顯示“#1 0x0000000000000000 in ??()”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM