我正在开发一个新的valgrind工具,在这个工具中,我想在某个时刻读取dwarf调试信息,以便获得全局数组的起始地址和大小。
我知道此信息包含在dwarf3调试信息的.debug_info部分中。
在目录/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
);但是我不明白如何使用这个函数。
如有任何帮助,请提前感谢。
发布于 2012-12-06 06:55:16
priv_头文件中声明的任何例程目前对工具都不可用-只有pub_tool_头文件中的例程是核心/工具接口的一部分。
pub_tool_debuginfo.h头是调试信息的接口,VG_(get_data_description)函数用于获取与地址相关的变量(如果有的话)的信息。请注意,如果您的工具希望加载变量信息,则需要从其clo_init例程调用VG_(needs_var_info)。
询问有关编写工具的问题的最好地方可能是valgrind-developers邮件列表。
https://stackoverflow.com/questions/13727174
复制相似问题