【发布时间】:2015-03-27 09:50:58
【问题描述】:
对于 ELF,两种附带的调试格式非常受其他人欢迎,即STAB and DWARF。我想要一种简单的方法来确定给定的二进制文件是否包含一种或另一种形式的调试信息,最好不必检查部分名称(.stab 等)。
有什么好的方法可以做到这一点?
【问题讨论】:
对于 ELF,两种附带的调试格式非常受其他人欢迎,即STAB and DWARF。我想要一种简单的方法来确定给定的二进制文件是否包含一种或另一种形式的调试信息,最好不必检查部分名称(.stab 等)。
有什么好的方法可以做到这一点?
【问题讨论】:
对于 ELF,两种附带的调试格式非常流行
在过去的 10 年中,ELF 平台上的任何当前编译器都默认未使用 STABS 格式。它绝对不是“非常受欢迎”。
讲述方式:
readelf -WS ./a.out | egrep '\.(stab |debug)'
如果二进制文件有STABS,您将看到.stab 部分。如果您有DWARF,您将看到.debug_info、.debug_line 等。如果您根本没有调试信息,您将什么也看不到。
最好不必检查部分名称
不查看部分就无法完成:是这些部分的存在与否使二进制文件包含或不包含调试信息。
【讨论】: