Commit b5cd47f5 authored by Alexandre Julliard's avatar Alexandre Julliard

ntdll: Skip NtRaiseException() call on ARM64 when debugger is not present.

parent d6bd2644
...@@ -1550,7 +1550,11 @@ __ASM_GLOBAL_FUNC( RtlRaiseException, ...@@ -1550,7 +1550,11 @@ __ASM_GLOBAL_FUNC( RtlRaiseException,
"stp x4, x5, [x1, #0xf0]\n\t" /* context->Fp, Lr */ "stp x4, x5, [x1, #0xf0]\n\t" /* context->Fp, Lr */
"str x5, [x1, #0x108]\n\t" /* context->Pc */ "str x5, [x1, #0x108]\n\t" /* context->Pc */
"str x5, [x0, #0x10]\n\t" /* rec->ExceptionAddress */ "str x5, [x0, #0x10]\n\t" /* rec->ExceptionAddress */
"mov x2, #1\n\t" "ldr x3, [x18, #0x60]\n\t" /* peb */
"ldrb w2, [x3, #2]\n\t" /* peb->BeingDebugged */
"cbnz w2, 1f\n\t"
"bl " __ASM_NAME("dispatch_exception") "\n"
"1:\tmov x2, #1\n\t"
"bl " __ASM_NAME("NtRaiseException") "\n\t" "bl " __ASM_NAME("NtRaiseException") "\n\t"
"bl " __ASM_NAME("RtlRaiseStatus") /* does not return */ ); "bl " __ASM_NAME("RtlRaiseStatus") /* does not return */ );
......
...@@ -8646,7 +8646,6 @@ static void test_KiUserExceptionDispatcher(void) ...@@ -8646,7 +8646,6 @@ static void test_KiUserExceptionDispatcher(void)
pRtlRaiseException(&record); pRtlRaiseException(&record);
ok(got_exception, "Handler was not called.\n"); ok(got_exception, "Handler was not called.\n");
todo_wine
ok(!hook_called, "Hook was called.\n"); ok(!hook_called, "Hook was called.\n");
memcpy( pKiUserExceptionDispatcher, patched_code, sizeof(patched_code) ); memcpy( pKiUserExceptionDispatcher, patched_code, sizeof(patched_code) );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment