__debugbreak和int3指令

时间:2019-02-06 09:14:46

标签: debugging x86 gdb interrupt

jmp 1f push %eax 1: movl $100, (%eax) call __debugbreak int3 ret

假设我们要在push%eax指令上放置一个断点。我们能做到吗 通过用调用debugbreak重写推%eax吗?上述方法有什么问题?为什么在这种情况下用int3重写是可行的?

1 个答案:

答案 0 :(得分:2)

int3是单字节指令(在这种情况下push也是如此)。 call不是。如果您用jmp而不是call覆盖push,那么您call将跳到int3的“中间”。 但是,除非有一种方法可以到达push(在跳转/调用之前没有标签),否则在push上设置断点是没有用的,不是吗?