我正在调试libc使用的malloc和free例程。为此,我安装了以下软件包。
sudo apt-get install libc6-dbg
sudo apt-get install libc6:i386
sudo apt-get install libc6-dbg:i386
我在64位Ubuntu 15.04计算机上,我正在调试i386二进制文件。我看到帖子here似乎处理了类似的问题。
在gdb内部,我检查加载调试文件的位置并获取此信息。
(gdb) show debug-file-directory
The directory where separate debug symbols are searched for is "/usr/lib/debug".
但是,没有迹象表明正在加载调试符号。我怎么能解决这个问题?
[编辑] 我用amd64和i386二进制文件尝试了这个,结果是一样的。我自己调试的二进制文件中没有安装调试符号。
答案 0 :(得分:0)
然而,没有任何迹象......
您在寻找什么指示?
我猜你做了类似的事情:
gdb ./a.out
(gdb) list malloc # complains about "no symbols loaded"
请改为:
gdb ./a.out
(gdb) start
# breakpoint 1 hit
(gdb) list __libc_malloc
说明:在程序实际启动之前,libc.so.6
及其调试符号未加载(因此不可见)。