joh*_*j33 15 c powerpc elf debug-symbols
我有一个ELF目标文件.我想知道它包含哪种类型的调试信息.它是用PPC架构的Diab编译器(C源代码)编译的.我很确定它是用调试符号构建的.
我试过提取调试信息,dwarfdump但我不工作,所以我猜调试信息不是DWARF类型.
$ dwarfdump file.elf
No DWARF information present in file.elf
Run Code Online (Sandbox Code Playgroud)
使用objdump显示调试信息是空的.
$ objdump -g file.elf
file.elf: file format elf32-powerpc
Run Code Online (Sandbox Code Playgroud)
可能是这个ELF文件不包含调试信息,即使ELF文件中有调用的部分.debug_sfnames,.debug_srcinfo并且.debug.srcinfo?或者调试信息是以objdump无法处理的格式存储的?
似乎没有人回答您的实际问题,即:如何以编程方式确定给定ELF二进制文件中存在的调试符号的形式。据我所知,这在ELF中没有明确给出。但是,可以通过ELF文件中特定节名称的存在来推断。例如:名为“ .debug_info”的部分表示DWARF2或更高版本,而“ .stab”的部分表示stab。快速搜索一下您的“ .debug_sfnames”会提示DWARF1。(我不知道为什么您的'dwarfdump'无法识别...也许您的dwarfdump是用于较新的DWARF,并向后兼容吗?)
在GNU / Linux中:
$ readelf --debug-dump=info /absolute/path/to/file | grep "Version" | uniq
Run Code Online (Sandbox Code Playgroud)
返回二进制文件中使用的DWARF符号版本。