GCC调试二进制文件中的源代码位置

时间:2017-08-29 20:27:57

标签: gcc debugging gdb

我有一个使用调试信息构建的库。我需要在构建此库的位置和本地调试源之间进行映射。

所以我不确定如何从二进制文件中提取这个信息:这个调试二进制文件是在这个库开发人员的机器上构建的。

我认为应该使用objdump实用程序,但我无法找到适当的参数。

1 个答案:

答案 0 :(得分:0)

  

我不知道如何从二进制文件中提取这个信息:这个调试二进制文件是在这个库开发人员的机器上构建的。

info source GDB命令会告诉你。例如:

gdb -q ./a.out
Reading symbols from ./a.out...done.
(gdb) start 
Temporary breakpoint 1 at 0x4004f1: file t.c, line 1.
Starting program: /tmp/junk/a.out 

Temporary breakpoint 1, main () at t.c:1
1   int main() { return 0; }
(gdb) info source
Current source file is t.c
Compilation directory is /tmp/junk
Located in /tmp/junk/t.c
Contains 1 line.
Source language is c.
Producer is GNU C 4.8.4 -mtune=generic -march=x86-64 -g -fstack-protector.
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.