我想在我的普通c
代码中使用ld.so的代码。
我试图在TUI模式下通过GDB编写流程,您可以在跳过代码时看到源代码和汇编。
为此,我还从ubuntu软件包管理器安装了libc-dbg
binutils-source
软件包。
GDB可以找到ld.so
本身的调试符号,我可以单步执行使用si
的指令级别,但由于GDB无法找到{{{ 1}}并显示ld.so
。
如何让GDB找到NO Source Available
的来源,这样我才能看到ld.so
来源中的哪一行实际上正在执行。
我正在使用ld.so
64位Ubuntu 12.10
答案 0 :(得分:3)
如果你有libc的源代码,你可以使用dir
命令将源添加到gdb的源路径:Source_Path
编辑:要调试与libc相关的文件(在Ubuntu发行版中),您需要:
software-sources
并检查“启用源代码存储库”)并运行apt-get source libc6
export LD_LIBRARY_PATH=/usr/lib/debug
或LD_LIBRARY_PATH=/usr/lib/debug gdb <application>
dir directory_path_libc_source/stdio-common
答案 1 :(得分:0)
在调试之前下载与gdb相同的Glibc源代码和路径。请检查此ubuntu blog