开发者

Find the path of the source code for the executable being currently debugged in GDB

I can set a breakpoint in main and debug the code with the correct source code, but I don't know where GDB is taking the source code from.

The source code is no开发者_开发技巧t present in CWD (current working directory).

How do I find from which location GDB is taking the code?


You can use the GDB command:

info source

Sample output:

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.


Use

(gdb) show directories

If you don't know where those directories are set, check your .gdbinit file to see if there are statements like

directory /path/to/source

See also this other Stack Overflow question about GDB.


This information is kept in the binary in the DWARF2 format. So, in order to see the DWARF2 information, you can use the dwarfdump utility. Needed information is kept in the DW_AT_comp_dir field.


The binary is probably compiled with "-g" - i.e. debugging.


Use the GDB "show directories" command to see the source search path.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜