How can I know what type of debug info is in an ELF object file?

浪尽此生 提交于 2019-12-12 07:46:40

问题


I have an ELF object file. I want to know which type of debugging info it contains. It was compiled with the Diab compiler (C source) for the PPC architecture. I'm pretty sure it was built with debugging symbols.

I have tried extracting the debugging info with dwarfdump but I doesn't work so I guess the debugging information is not of type DWARF.

$ dwarfdump file.elf
No DWARF information present in file.elf

Using objdump to show debugging information comes up empty.

$ objdump -g file.elf 
file.elf:     file format elf32-powerpc

Can it be that this ELF file does not contain debugging info even though the ELF file has sections called .debug_sfnames, .debug_srcinfo and .debug.srcinfo? Or is the debugging info stored in a format that objdump can't handle?


回答1:


You should probably use the nm

The nm utility shall display symbolic information appearing in the object file, executable file, or object-file library named by file. If no symbolic information is available for a valid input file, the nm utility shall report that fact, but not consider it an error condition.

Alternatively you can use tools like ldd to see what libraries are required by a binary.




回答2:


It doesn't seem like anyone ever answered your actual question, which is: how to programmatically determine the flavor of debug symbols present in a given ELF binary. As best as I can tell, this isn't given explicitly within ELF; however, it can be inferred by the presence of specific section names within the ELF file. For example: a section named ".debug_info" implies DWARF2 or better, whereas ".stab" implies stabs. A quick googling of your ".debug_sfnames" suggests DWARF1. (I don't know why your 'dwarfdump' didn't identify that... perhaps your dwarfdump is for newer DWARFs, and dumped backwards compatibility?)




回答3:


In GNU/Linux:

$ readelf --debug-dump=info /absolute/path/to/file | grep "Version" | uniq

Returns the DWARF symbols version used in the binary.



来源:https://stackoverflow.com/questions/7098173/how-can-i-know-what-type-of-debug-info-is-in-an-elf-object-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!