如何在valgrind中修改寄存器sp的修改

时间:2018-06-09 22:50:03

标签: valgrind vex

我想通过编写一个简单的valgrind工具来跟踪x86_64堆栈寄存器(sp)的修改。是否有其他工具可以跟踪sp(或其他寄存器修改)的修改已经可以从哪里查看和复制?我想我需要解析IRStmt标记的Ist_Put并查找Put.offset == offset_SP。是否有工具已经这样做了?我想打印出写入SP的值。

1 个答案:

答案 0 :(得分:1)

见pub_tool_tooliface.h。 这定义了一堆< void void VG_(track_new_mem_stack *)函数 和VG_(track_die_mem_stack *)用于跟踪对SP的更改。

除非您需要非常高性能的跟踪(例如memcheck所需), 它应该足够好用:

  • VG_(track_new_mem_stack)
  • VG_(track_new_mem_stack_signal)
  • VG_(track_die_mem_stack)
  • VG_(track_die_mem_stack_signal)