gpt4 book ai didi

c - GDB进入动态链接器(ld.so)代码

转载 作者:太空狗 更新时间:2023-10-29 12:04:28 27 4
gpt4 key购买 nike

只要在我的普通 c 代码中使用它,我就想进入 ld.so 的代码。我正在尝试通过 GDB 中的代码流 TUI在跨过代码时可以看到源代码和程序集的模式。

为此,我还从 ubuntu 包管理器安装了 libc-dbg binutils-source 包。GDB 可以找到 ld.so 本身的调试符号,我可以进入使用 si 的指令级别,但我不能进入源代码级别,因为 GDB 不是能够找到 ld.so 的源代码并显示 NO Source Available

我怎样才能让 GDB 找到 ld.so 的源代码,这样我还可以看到 ld.so 源代码中的哪一行实际上正在执行。

我正在使用 Ubuntu 12.10 64 位和 GCC 4.8.2

最佳答案

如果您有 libc 的源代码可用,您可以使用 dir 将源添加到 gdb 的源路径中。命令:Source_Path

编辑:要调试 libc 相关文件(在 Ubuntu 发行版中),您需要:

  1. 通过安装libc6-dbg包获取libc的调试信息。
  2. 通过启用源存储库(通过运行 software-sources 并选中“启用源代码存储库”)并运行 apt-get source libc6 来获取 libc 的源代码
  3. 将 libc 的调试信息添加到 LD_LIBRARY_PATH:export LD_LIBRARY_PATH=/usr/lib/debugLD_LIBRARY_PATH=/usr/lib/debug gdb <application>
  4. 将c 文件的完整路径添加到gdb 的源路径,即:dir directory_path_libc_source/stdio-common

关于c - GDB进入动态链接器(ld.so)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114565/

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