想象一下,我们正在调试gdb中的以下汇编代码:
...
mov eax, 0x0f
mov edx, 0xf0
test eax, edx
>> jz label2
add eax, 0xf0
...
label2:
...
在这种情况下,如果我们执行si
,指令jz label2
将使程序跳转到label2
。现在假设我不希望它跳转,我能想到的唯一方法是在指令add eax, 0xf0
的地址放置一个临时断点,然后手动跳转到它。或者可能重置eflags以使Z为0。
还有其他更简单的方法吗?跳跃继续执行,我每次想跳的时候都要进行tbreak