__debugbreak和INT3指令

问题描述 投票:0回答:1

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

假设我们希望把推送%EAX指令断点。我们可以做到这一点通过重写推%eax中与通话的DebugBreak?什么是上述方法的问题?为什么用INT3工作改写在这种情况下?

debugging x86 gdb interrupt
1个回答
2
投票

int3是一个单字节指令(因此是在这种情况下push)。 call不是。您jmp会跳进call的“中间”,如果你有push而不是call覆盖你int3。但是,除非有到达push的方式(我没有看到它的标签跳前/调用),把一个断点push是没用的,不是吗?

© www.soinside.com 2019 - 2024. All rights reserved.