diff --git a/renderdoc/common/common.h b/renderdoc/common/common.h index 488887680..cfeb48cd6 100644 --- a/renderdoc/common/common.h +++ b/renderdoc/common/common.h @@ -42,11 +42,24 @@ #include #define __PRETTY_FUNCTION_SIGNATURE__ __PRETTY_FUNCTION__ + #if ENABLED(RDOC_SWITCH) + #include #define OS_DEBUG_BREAK() abort() + +#elif ENABLED(RDOC_LINUX) + +#define OS_DEBUG_BREAK() \ + do \ + { \ + __asm__ volatile("int $0x03"); \ + } while((void)0, 0) + #else + #define OS_DEBUG_BREAK() raise(SIGTRAP) + #endif #if defined(__clang__) diff --git a/renderdoc/os/os_specific.h b/renderdoc/os/os_specific.h index b255ad007..470bafa63 100644 --- a/renderdoc/os/os_specific.h +++ b/renderdoc/os/os_specific.h @@ -464,7 +464,6 @@ void Shutdown(); namespace OSUtility { inline void ForceCrash(); -inline void DebugBreak(); bool DebuggerPresent(); enum { diff --git a/renderdoc/os/posix/posix_specific.h b/renderdoc/os/posix/posix_specific.h index 80a226416..d6a0bf786 100644 --- a/renderdoc/os/posix/posix_specific.h +++ b/renderdoc/os/posix/posix_specific.h @@ -82,10 +82,6 @@ inline void ForceCrash() { __builtin_trap(); } -inline void DebugBreak() -{ - raise(SIGTRAP); -} bool DebuggerPresent(); }; diff --git a/renderdoc/os/win32/win32_specific.h b/renderdoc/os/win32/win32_specific.h index a9506c417..aa4557122 100644 --- a/renderdoc/os/win32/win32_specific.h +++ b/renderdoc/os/win32/win32_specific.h @@ -49,10 +49,6 @@ inline void ForceCrash() { *((int *)NULL) = 0; } -inline void DebugBreak() -{ - __debugbreak(); -} inline bool DebuggerPresent() { return ::IsDebuggerPresent() == TRUE;