2

添加:此链接(https://stackoverflow.com/a/48287761/2554472)有我问题的答案(Mark Plotnick 的答案)。不同的标题,重复的答案。

我正在使用 ddd(与 gdb)来分析程序(qemu)。
在 main() 开始之前,有一些代码使用 glibc 中的函数运行。
例如,我想看看 libc_csu_init 在做什么(可能正在初始化静态变量..)。
但由于我的 qemu 程序链接到 libc 的发布版本,我看不到 libc 代码。
如何安装 libc 的调试信息并在调试期间查看源代码?我是否必须安装调试版本 libc 并使用它编译 qemu?或者我可以只安装调试版本 libc 并在运行 dbg 时查看 libc 源吗?
顺便说一句,如果我这样做ldd qemu-system-aarch64,我可以在下面看到一行。

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2feafb3000)

这意味着它是针对 glibc 编译的,因为 libc 在 x86_64-linux-gnu 目录下,不是吗?如果我错了,请纠正我。

4

0 回答 0