我有一个使用调试信息构建的库。我需要在构建此库的位置和本地调试源之间进行映射。
所以我不确定如何从二进制文件中提取这个信息:这个调试二进制文件是在这个库开发人员的机器上构建的。
我认为应该使用objdump实用程序,但我无法找到适当的参数。
答案 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.