0

我有一个 JIT。我设置了一个观察点(watch- 所以它应该只在写入时触发)到一个函数(全部)的jitted代码,如this answer中所示。我提供--vgdb=full给 valgrind,这意味着必须检测所有指令,并且我应该看到执行在停止发生的位置准确停止。

然而,观察点在被观察的函数中间触发了几次。我注意到执行停止的指令是基本的块入口点(它们都遵循 ajump或 acall或者它是我函数的第一条指令)。

在观察点触发时,我看不到对观察内存的实际写入。那么 valgrind 是否认为执行此内存(其中一些)是一次写入?或者是其他一些 valgrind 的怪事,还是只是我?

请说清楚。

我的 valgrind 版本是 3.10.0.SVN,gdb 是 7.7.1(Ubuntu 7.7.1-0ubuntu5~14.04.2)。

4

1 回答 1

0

执行某些代码不应被视为 valgrind gdbserver 的写入。一些 valgrind 跟踪参数 (-v -v -v -d -d -d) 可能会让人知道发生了什么。

于 2015-08-23T20:55:26.193 回答