如何检测 valgrind 中寄存器 sp 的修改
How to instrument the modification of register sp in valgrind
我想通过编写一个简单的 valgrind 工具来跟踪 x86_64 堆栈寄存器 (sp) 的修改。是否有其他工具可以跟踪 sp(或其他寄存器修改)的修改,我可以从中查看和复制?我想我需要解析标记为 Ist_Put
的 IRStmt
并查找 Put.offset == offset_SP
。是否已经有工具可以做到这一点?我想打印出写入 SP 的值。
参见 pub_tool_tooliface.h。
这定义了一堆 'void VG_(track_new_mem_stack*) 函数
和 VG_(track_die_mem_stack*) 函数跟踪 SP 的变化。
除非您需要非常高性能的跟踪(例如 memcheck 需要),
它应该足够好使用:
- VG_(track_new_mem_stack)
- VG_(track_new_mem_stack_信号)
- VG_(track_die_mem_stack)
- VG_(track_die_mem_stack_信号)
我想通过编写一个简单的 valgrind 工具来跟踪 x86_64 堆栈寄存器 (sp) 的修改。是否有其他工具可以跟踪 sp(或其他寄存器修改)的修改,我可以从中查看和复制?我想我需要解析标记为 Ist_Put
的 IRStmt
并查找 Put.offset == offset_SP
。是否已经有工具可以做到这一点?我想打印出写入 SP 的值。
参见 pub_tool_tooliface.h。 这定义了一堆 'void VG_(track_new_mem_stack*) 函数 和 VG_(track_die_mem_stack*) 函数跟踪 SP 的变化。
除非您需要非常高性能的跟踪(例如 memcheck 需要), 它应该足够好使用:
- VG_(track_new_mem_stack)
- VG_(track_new_mem_stack_信号)
- VG_(track_die_mem_stack)
- VG_(track_die_mem_stack_信号)