使用readelf/objdump查看dwaf调试信息

对源文件进行编译链接,生成.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

猜你喜欢

转载自blog.csdn.net/zhang_han666/article/details/80267961