我可以在main中设置断点并使用正确的源代码调试代码,但我不知道gdb从哪里获取源代码。
CWD中没有源代码。
如何找到gdb从哪个位置获取代码?
答案 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
答案 2 :(得分:5)
此信息以DWARF2格式保存为二进制。因此,为了查看DWARF2信息,可以使用dwarfdump实用程序。所需信息保存在DW_AT_comp_dir字段中。
答案 3 :(得分:2)
二进制文件可能用“-g”编译 - 即调试。
答案 4 :(得分:1)
使用gdb“show directories”命令查看源搜索路径。