fixes an issue where you cannot step over int3 instructions even with Skip INT3 Stepping enabled

This commit is contained in:
Colin Senner 2026-07-12 23:49:58 -07:00
parent ec7a8b9352
commit 54b37b9bae
1 changed files with 4 additions and 0 deletions

View File

@ -601,6 +601,10 @@ __declspec(dllexport) void TITCALL DebugLoop()
ULONG_PTR exceptionAddress = (ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress; ULONG_PTR exceptionAddress = (ULONG_PTR)DBGEvent.u.Exception.ExceptionRecord.ExceptionAddress;
if(recentlyDeletedBpx.find(exceptionAddress) != recentlyDeletedBpx.end()) if(recentlyDeletedBpx.find(exceptionAddress) != recentlyDeletedBpx.end())
unsigned char currentByte = 0xCC;
MemoryReadSafe(dbgProcessInformation.hProcess, (void*)exceptionAddress, &currentByte, 1, nullptr);
if(currentByte != 0xCC && recentlyDeletedBpx.find(exceptionAddress) != recentlyDeletedBpx.end())
{ {
//breakpoint was recently deleted - handle the stale event gracefully //breakpoint was recently deleted - handle the stale event gracefully
hActiveThread = EngineOpenThread(THREAD_GETSETSUSPEND, false, DBGEvent.dwThreadId); hActiveThread = EngineOpenThread(THREAD_GETSETSUSPEND, false, DBGEvent.dwThreadId);