我想通过编写一个简单的valgrind工具来跟踪x86_64堆栈寄存器(sp)的修改。是否有其他工具可以跟踪sp(或其他寄存器修改)的修改已经可以从哪里查看和复制?我想我需要解析IRStmt
标记的Ist_Put
并查找Put.offset == offset_SP
。是否有工具已经这样做了?我想打印出写入SP的值。
答案 0 :(得分:1)
见pub_tool_tooliface.h。 这定义了一堆< void void VG_(track_new_mem_stack *)函数 和VG_(track_die_mem_stack *)用于跟踪对SP的更改。
除非您需要非常高性能的跟踪(例如memcheck所需), 它应该足够好用: