使用readelf/objdump查看dwaf调试信息
程序员文章站
2022-05-27 09:22:43
...
对源文件进行编译链接,生成.o文件。
使用
readelf -S test
查看包含的调试信息。
这时会出现很多信息:
接着使用
readelf –w* test
查看各个调试信息节包含的内容。
*是调试节名的第一个字母,如-wi
就是查看.debug_info
节的内容,-wl
就是查看.debug_line
节的内容。我们主要就看这两个信息。
查看.debug_info
的内容:
常用的标记和属性:
数据列 | 信息说明 |
---|---|
DW_TAG_class_type | 表示类名称和类型信息 |
DW_TAG_structure_type | 表示结构名称和类型信息 |
DW_TAG_union_type | 表示联合名称和类型信息 |
DW_TAG_enumeration_type | 表示联合名称和类型信息 |
DW_TAG_typedef | 表示 typedef 名称和类型信息 |
DW_TAG_array_type | 表示数组名称和类型信息 |
DW_TAG_subrange_type | 表示数组大小信息 |
DW_TAG_inheritance | 表示继承的类名称和类型信息 |
DW_TAG_member | 表示类的成员 |
DW_TAG_subprogram | 表示函数名称信息 |
DW_TAG_formal_parameter | 表示函数参数的信息 |
DW_AT_name | 表示名称字符串 |
DW_AT_type | 表示类型信息 |
DW_AT_artificial | 在创建时由编译程序设置 |
DW_AT_sibling | 表示兄弟位置信息 |
DW_AT_data_member_location | 表示位置信息 |
DW_AT_virtuality | 在虚拟时设置 |
下一篇会简单的分析一下调试信息。
参考博客:
https://www.cnblogs.com/zqingnn/archive/2011/01/05/1926384.html