![](/img/trans.png)
[英]Not able to debug code in Eclipse linux Error cant find source malloc.c
[英]Include source code of malloc.c in gdb?
如何在 gdb 中包含/查看malloc
的源代码?
我想在gdb
逐步执行,并在调用任何 malloc 函数时进入malloc.c
源代码。
目前 gdb 所说的是: malloc.c: No such file or directory.
这个家伙在这里面临同样的问题,但他们没有提到解决方案,即如何实际进入malloc的源代码。
我在Ubuntu server 14.04
,我已经尝试安装以下内容: libc6-dbg
、 libc6-dev
和libc6-dbgsym
。 我什至不知道这些软件包中的一个是否有帮助,但是安装libc-dbgsym
给了我以下错误:
dpkg: error processing archive /var/cache/apt/archives/libc6-dbgsym_2.19-0ubuntu6.6_amd64.ddeb (--unpack): trying to overwrite
'/usr/lib/debug/usr/lib/x86_64-linux-gnu/audit/sotruss-lib.so', which
is also in package libc6-dbg:amd64 2.19-0ubuntu6.6 dpkg-deb: error:
subprocess paste was killed by signal (Broken pipe)
以下对我有用。 不确定是否有更好的方法。
sudo apt-get install libc6-dbg
sudo apt-get install eglibc-source
。/usr/src/glibc $ sudo tar xvf eglibc-2.19.tar.xz
(gdb) dir /usr/src/glibc/eglibc-2.19/malloc
(gdb) n
13 字符 *c = malloc(100);
(gdb) s
__GI___libc_malloc (bytes=100) at malloc.c:2876 2876
{
(gdb)
Gdb 只能显示源代码,因为调试编译的二进制文件包含二进制代码和源文件之间的引用。
malloc()
在 C 库中。 在普通系统上,它不使用调试元数据编译,其源也不安装在系统中。
但是它们是可访问的,您只需要安装这些库的调试版本。 例如,在 debian 上, apt-get install glibc-debug
或类似的就可以做到。 在 SuSE 上, zipper in libc6-debug
一个zipper in libc6-debug
(afaik,也许确切的包名可能有点不同)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.