1
我正在開發一個valgrind的新工具,其中在某些時候我想讀取矮人調試信息以獲取起始地址和全局數組的大小。Valgrind新工具,閱讀矮人2或矮人3信息
我知道這個信息包含在dwarf3調試信息的.debug_info部分。
在derictory/Valgrind的/ coregrind/m_debuginfo存在其中有在第57行一個FUNC頭文件priv_readdwarf3.h:
/* 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
);
,但我不能瞭解如何使用本功能。
任何幫助讚賞 在此先感謝。
謝謝湯姆, 我按照你的指示,我寫了下面的一段代碼。 (free),sizeof(HChar));或者,可以使用VG_(freeX) myxarr2 = VG_(newXA)(VG_(malloc),「football」, VG_(free),sizeof(HChar)); check = VG_(get_data_description)(myxarr1,myxarr2,addr); 其中addr包含我的數組的起始地址 我也從我的clo_init調用VG_(needs_var_info)是假的。這意味着沒有描述是由'VG_(get_data_description)'創建的。 – lazlazari