我正在开发一个新的 valgrind 工具,在某些时候我想读取 dwarf 调试信息,以获取全局数组的起始地址和大小。
我知道此信息包含在 dwarf3 调试信息的 .debug_info 部分中。
在 derictory /valgrind/coregrind/m_debuginfo 中有一个头文件 priv_readdwarf3.h,其中第 57 行有一个函数:
/* Read variables and types from DWARF3 ".debug_info" sections. */
extern void ML_(read_debuginfo_dwarf3)(
struct _DebugInfo* di,
UChar* debug_info_img, SizeT debug_info_sz,
UChar* debug_types_img, SizeT debug_types_sz,
UChar* debug_abbv_img, SizeT debug_abbv_sz,
UChar* debug_line_img, SizeT debug_line_sz,
UChar* debug_str_img, SizeT debug_str_sz,
UChar* debug_ranges_img, SizeT debug_ranges_sz,
UChar* debug_loc_img, SizeT debug_loc_sz,
UChar* debug_info_alt_img, SizeT debug_info_alt_sz,
UChar* debug_abbv_alt_img, SizeT debug_abbv_alt_sz,
UChar* debug_line_alt_img, SizeT debug_line_alt_sz,
UChar* debug_str_alt_img, SizeT debug_str_alt_sz
);
但我不明白如何使用这个功能。
任何帮助表示感谢提前感谢。