我认为带有调试符号的libc版本在/ usr / lib / debug /
lib中。我尝试将LD_LIBRARY_PATH变量设置为在路径的开头,但这似乎没有什么不同。
这些 不是 您要查找的机器人。
/ usr / lib / debug中的库不是 真正的 库。而是 仅
包含调试信息,但不包含real的
.text任何
.data部分
libc.so.6。您可以在此处阅读有关单独的debuginfo文件的信息。
中的文件
/usr/lib/debug来自
libc6-dbg软件包,只要与您安装的版本匹配,GDB就会 自动
加载它们
libc6。如果
libc6和
libc6-dbg不匹配,则应从GDB得到警告。
您可以通过设置观察GDB尝试读取的文件
set verbose on。下面是你应该看到的时候什么
libc6和
libc6-dbg做匹配:
(gdb) set verbose on(gdb) runthread_db_load_search returning 0Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/lib/ld-2.11.1.so...done.thread_db_load_search returning 0done.thread_db_load_search returning 0Loaded symbols for /lib64/ld-linux-x86-64.so.2Reading symbols from system-supplied DSO at 0x7ffff7ffb000...done.WARNING: no debugging symbols found in system-supplied DSO at 0x7ffff7ffb000.thread_db_load_search returning 0Reading in symbols for dl-debug.c...done.Reading in symbols for rtld.c...done.Reading symbols from /lib/librt.so.1...Reading symbols from /usr/lib/debug/lib/librt-2.11.1.so...done.thread_db_load_search returning 0... etc ...
更新:
例如我看到
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done
这意味着您的GDB没有进行搜索
/usr/lib/debug。可能发生的一种方法是,如果你设置
debug-file-directory你的
.gdbinit错误。
这是默认设置:
(gdb) show debug-file-directoryThe directory where separate debug symbols are searched for is "/usr/lib/debug".



