我需要知道二进制文件中是否包含调试符号。它是一个生产系统,因此没有file
或objdump
或gdb
这样的命令。
可以在需要时提供更多信息。
操作系统:Debian
最佳答案
可能您正在寻找像 objdump 这样的工具
可以说我们有一个像这样的小程序
#include <stdio.h>
int main()
{
printf("Hello ");
return 0;
}
现在可以正常编译
gcc example.c -o example
现在可以使用objdump工具检查调试符号的存在
objdump -h example | grep debug
我们当然找不到任何东西
现在让我们使用调试选项进行重试
gcc -g example.c -o example
objdump -h example | grep debug
26 .debug_aranges 00000030 0000000000000000 0000000000000000 000008b0 2**0
27 .debug_pubnames 0000001b 0000000000000000 0000000000000000 000008e0 2**0
28 .debug_info 0000008b 0000000000000000 0000000000000000 000008fb 2**0
29 .debug_abbrev 0000003f 0000000000000000 0000000000000000 00000986 2**0
30 .debug_line 0000003f 0000000000000000 0000000000000000 000009c5 2**0
31 .debug_str 00000087 0000000000000000 0000000000000000 00000a04 2**0
32 .debug_pubtypes 00000012 0000000000000000 0000000000000000 00000a8b 2**0
man -a objdump可能会帮助更多