使用GDB设置读写观察点?

时间:2016-06-05 01:18:15

标签: gdb watchpoint

我试图追踪incorrect runtime cpu feature reporting的来源。由于C++ "As-If-Broken" rule,我非常肯定它的语言允许编译器采用正确的程序并将其转换为错误的程序。

根据5.1.2 Setting Watchpoints

  

为表达式设置观察点。当程序写入表达式expr并且其值发生变化时,gdb将中断。此命令最简单(也是最常用)的用法是观察单个变量的值:

     

(gdb)watch foo

请注意,观察点用于写访问,但不是读写访问。

我想设置一个对一个变量进行读写访问的观察点,该变量在启动时在__attribute__(constructor)的函数中设置一次,然后在确定功能后多次读取。我想这样做是为了确认优化器正在删除调用,并且可能确定删除了多少个调用。

如何使用GDB设置读写观察点?

1 个答案:

答案 0 :(得分:1)

  

如何使用GDB设置读写观察点?

(gdb) help awatch

来自the manual

awatch [-l|-location] expr [thread thread-id] [mask maskvalue]

Set a watchpoint that will break when expr is either read from
or written into by the program.