linux - 如何配置 gdb 加载符号?

标签 linux debugging gdb debian debug-symbols

我正在尝试使用调试符号在 gdb 中运行 Debian 7.7.0 附带的 exim4 邮件服务器。我已经使用 apt-get install exim4-dbg 安装了调试符号,它似乎位于/usr/lib/debug 中。当我尝试附加到 exim 进程时,我得到以下信息:(未找到调试符号)

Attaching to process 25318
Reading symbols from /usr/sbin/exim4...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libresolv.so.2...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnsl.so.1...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libcrypt.so.1...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libm.so.6...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libdl.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/lib/i386-linux-gnu/libdb-5.1.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib/i386-linux-gnu/libgnutls.so.26...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/libpcre.so.3...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libc.so.6...(no debugging symbols found)...done.
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0...(no debugging symbols found)...done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
Reading symbols from /usr/lib/i386-linux-gnu/libtasn1.so.3...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/libgcrypt.so.11...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/libz.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/i386-linux-gnu/libp11-kit.so.0...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/libgpg-error.so.0...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_compat.so.2...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_nis.so.2...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_files.so.2...(no debugging symbols found)...done.
Reading symbols from /lib/libnss_mdns4_minimal.so.2...(no debugging symbols found)...done.
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_dns.so.2...(no debugging symbols found)...done.
Reading symbols from /lib/libnss_mdns4.so.2...(no debugging symbols found)...done.
0xb765c424 in __kernel_vsyscall ()
(gdb) show debug-file-directory
The directory where separate debug symbols are searched for is "/usr/lib/debug".
(gdb) list
No symbol table is loaded.  Use the "file" command.
(gdb) 

非常感谢任何帮助。谢谢!

最佳答案

你做的是对的。您只需要 apt-get install exim4-daemon-light-dbgexim4-daemon-heavy-dbg。然后 gdb 应该按照您当前运行它的方式找到符号。

关于linux - 如何配置 gdb 加载符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33316132/

相关文章:

linux - 如何在 Mac 上创建目录的 Linux 兼容 zip 存档

javascript - 如何使用 '>' 在 Node.js 中重定向输出?

iphone - 如何在 Xcode 中使用带有嵌套静态库的调试器?

android - 在 Android 上使用 GDB 调试 native 应用程序

c++ - 在 Windows 上调试 linux 故障转储

c - 如何使我的 Linux C 程序可以从 bash 访问

c - 如何从 gtk+2 中的输入法接收字符?

visual-studio - 无法在 Visual Studio 2010 上启动调试器 (F5) 但是, ' attach to process' 确实有效(慢)。怎么修?

actionscript-3 - 从 FlashDevelop IDE 关闭 Flash Player

c++ - 我可以从地址读取/写入 gdb 中断吗?