Module: wine Branch: master Commit: d1836e226c003150fe0de19cf96f048eb82b0ac1 URL: https://gitlab.winehq.org/wine/wine/-/commit/d1836e226c003150fe0de19cf96f048...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Jan 29 17:07:25 2024 +0100
ntdll: Avoid calling DbgBreakPoint() in process_breakpoint().
---
dlls/kernel32/tests/debugger.c | 11 +---------- dlls/ntdll/signal_i386.c | 2 +- dlls/ntdll/signal_x86_64.c | 2 +- 3 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/dlls/kernel32/tests/debugger.c b/dlls/kernel32/tests/debugger.c index b0c69052936..5dc6ca77d48 100644 --- a/dlls/kernel32/tests/debugger.c +++ b/dlls/kernel32/tests/debugger.c @@ -1381,16 +1381,7 @@ static void test_debug_children(const char *name, DWORD flag, BOOL debug_child,
/* Except for wxppro and w2008, the initial breakpoint is now somewhere else, possibly within LdrInitShimEngineDynamic, * It's also catching exceptions and ContinueDebugEvent(DBG_EXCEPTION_NOT_HANDLED) should not crash the child now */ - if (broken(ctx.ev.u.Exception.ExceptionRecord.ExceptionAddress == pDbgBreakPoint)) - { - win_skip("Ignoring initial breakpoint address check\n"); - pass_exception = FALSE; - } - else - { - todo_wine - ok(ctx.ev.u.Exception.ExceptionRecord.ExceptionAddress != pDbgBreakPoint, "ExceptionAddress == pDbgBreakPoint\n"); - } + ok(ctx.ev.u.Exception.ExceptionRecord.ExceptionAddress != pDbgBreakPoint, "ExceptionAddress == pDbgBreakPoint\n");
if (pass_exception) { diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index 95efec5122c..ee20b5e011e 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -636,7 +636,7 @@ void WINAPI process_breakpoint(void) { __TRY { - DbgBreakPoint(); + __asm__ volatile("int $3"); } __EXCEPT_ALL { diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c index 17c1bb2a651..46357897369 100644 --- a/dlls/ntdll/signal_x86_64.c +++ b/dlls/ntdll/signal_x86_64.c @@ -1734,7 +1734,7 @@ void WINAPI process_breakpoint(void) { __TRY { - DbgBreakPoint(); + __asm__ volatile("int $3"); } __EXCEPT_ALL {