找到当前在gdb中调试的可执行文件的源代码的路径

时间:2009-12-15 12:09:55

标签: gdb

我可以在main中设置断点并使用正确的源代码调试代码,但我不知道gdb从哪里获取源代码。

CWD中没有源代码。

如何找到gdb从哪个位置获取代码?

5 个答案:

答案 0 :(得分:25)

您可以使用gdb命令:

info source

示例输出:

Current source file is a.c
Compilation directory is /home/user/test
Located in /home/user/test/a.c
Contains 17 lines.
Source language is c.
Compiled with DWARF 2 debugging format.
Includes preprocessor macro info.

答案 1 :(得分:5)

使用

(gdb) show directories

如果您不知道这些目录的设置位置,请检查 .gdbinit 是否存在

等语句
directory /path/to/source

另见this other SO Thread about gdb

答案 2 :(得分:5)

此信息以DWARF2格式保存为二进制。因此,为了查看DWARF2信息,可以使用dwarfdump实用程序。所需信息保存在DW_AT_comp_dir字段中。

答案 3 :(得分:2)

二进制文件可能用“-g”编译 - 即调试。

答案 4 :(得分:1)

使用gdb“show directories”命令查看源搜索路径。