我有一个JIT。我在this answer中设置了一个观察点(watch
- 因此它应该仅在写入时触发)到函数的jitted代码(全部)。我向valgrind提供了--vgdb=full
,这意味着必须对所有指令进行检测,并且我应该看到执行停止在停止发生的位置。
然而,观察点在被观看的功能中间触发多次。我注意到执行停止的指令是基本的块入口点(它们都跟在jump
或call
之后,或者它是我函数的第一条指令。)
在观察点发射时,我没有看到对观察记忆的实际写入。那么valgrind会考虑执行这个内存(其中一些)写吗?还是其他一些valgrind古怪,还是仅仅是我?
请澄清。
我的valgrind版本是3.10.0.SVN,gdb是7.7.1(Ubuntu 7.7.1-0ubuntu5~14.04.2)。
答案 0 :(得分:0)
执行某些代码不应被视为写入 valgrind gdbserver。 一些valgrind跟踪参数(-v -v -v -d -d -d)可能会给出一个想法 关于会发生什么。