gpt4 book ai didi

c - 在 gdb 中包含 malloc.c 的源代码?

转载 作者:太空狗 更新时间:2023-10-29 16:37:58 25 4
gpt4 key购买 nike

如何在 gdb 中包含/查看 malloc 的源代码?

我想在gdb中一步步执行,当任何一个malloc函数被调用时进入malloc.c源代码。

目前gdb说的是:malloc.c: 没有那个文件或目录。

This这里的家伙遇到了同样的问题,但他们没有提到解决方案,即如何真正进入 malloc 的源代码。

我在 Ubuntu 服务器 14.04 上,我已经尝试安装以下内容:libc6-dbglibc6-devlibc6-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)

最佳答案

以下对我有用。不确定是否有更好的方法。

  1. 安装 libc6-dbg(您已经完成):sudo apt-get install libc6-dbg
  2. 安装 eglibc-source 包(ubuntu 实际上使用 eglibc):sudo apt-get install eglibc-source
  3. 解压安装在/usr/src/glibc 中的 tar 文件:/usr/src/glibc $ sudo tar xvf eglibc-2.19.tar.xz
  4. 启动 gdb 并添加到 malloc 源的路径:(gdb) dir/usr/src/glibc/eglibc-2.19/malloc

(gdb) n

13 char *c = malloc(100);

(gdb) s

__GI___libc_malloc (bytes=100) at malloc.c:2876 2876

{

(gdb)

关于c - 在 gdb 中包含 malloc.c 的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com