gdb:当寄存器的值为0xffaa时的断点

osg*_*sgx 20 unix debugging gdb

我可以在gdb中为寄存器值设置断点/观察点/ smth吗?

当$ eax的值为0x0000ffaa时,我想打破.

是否可以使用gdb或dbx或任何其他unix调试器?

Mar*_*ler 28

在gdb中是的,您可以像这样设置一个观察点:

watch $eax == 0x0000ffaa
Run Code Online (Sandbox Code Playgroud)

但它取决于可用于目标的观察点支持.您应该注意,这可能会显着降低执行速度.

如果您想在某个位置中断,可以通过设置条件断点来实现:

break test.c:120 if $eax == 0x0000ffaa
Run Code Online (Sandbox Code Playgroud)