From ac83087bc2b774e19952753112d337786bb27e85 Mon Sep 17 00:00:00 2001 From: ptc-tgamper Date: Wed, 18 Dec 2019 14:51:09 +0100 Subject: [PATCH] catch_debugger.h - implement break into debugger assembler instructions for iOS --- src/catch2/catch_debugger.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/catch2/catch_debugger.h b/src/catch2/catch_debugger.h index e0e7ec1f..96925fc9 100644 --- a/src/catch2/catch_debugger.h +++ b/src/catch2/catch_debugger.h @@ -19,6 +19,17 @@ namespace Catch { #define CATCH_TRAP() __asm__("int $3\n" : : ) /* NOLINT */ +#elif defined(CATCH_PLATFORM_IPHONE) + + // use inline assembler + #if defined(__i386__) || defined(__x86_64__) + #define CATCH_TRAP() __asm__("int $3") + #elif defined(__aarch64__) + #define CATCH_TRAP() __asm__(".inst 0xd4200000") + #elif defined(__arm__) + #define CATCH_TRAP() __asm__(".inst 0xe7f001f0") + #endif + #elif defined(CATCH_PLATFORM_LINUX) // If we can use inline assembler, do it because this allows us to break // directly at the location of the failing check instead of breaking inside