mirror of https://github.com/x64dbg/TitanEngine
Handle STATUS_WX86_BREAKPOINT and STATUS_WX86_SINGLE_STEP in DebugLoop
When aidbg (x64) debugs a 32-bit target under WoW64, software breakpoints (int3) surface as STATUS_WX86_BREAKPOINT (0x4000001f) instead of STATUS_BREAKPOINT (0x80000003), and the step-over single step as STATUS_WX86_SINGLE_STEP (0x4000001e). Route both to the existing breakpoint/single-step handling so breakpoints are consumed and restored correctly; otherwise continue re-stops on the same address forever.
This commit is contained in:
parent
ccac889f27
commit
f425de392c
|
|
@ -591,6 +591,7 @@ __declspec(dllexport) void TITCALL DebugLoop()
|
|||
switch((LONG)DBGEvent.u.Exception.ExceptionRecord.ExceptionCode)
|
||||
{
|
||||
case STATUS_BREAKPOINT:
|
||||
case STATUS_WX86_BREAKPOINT:
|
||||
{
|
||||
bool bFoundBreakPoint = false;
|
||||
BreakPointDetail FoundBreakPoint;
|
||||
|
|
@ -736,6 +737,7 @@ __declspec(dllexport) void TITCALL DebugLoop()
|
|||
break;
|
||||
|
||||
case STATUS_SINGLE_STEP:
|
||||
case STATUS_WX86_SINGLE_STEP:
|
||||
{
|
||||
if(IsDbgReplyLaterSupported)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue