| @@ -201,34 +201,43 @@ | |||||
| extern bool JUCE_CALLTYPE juce_isRunningUnderDebugger() throw(); | extern bool JUCE_CALLTYPE juce_isRunningUnderDebugger() throw(); | ||||
| END_JUCE_NAMESPACE | END_JUCE_NAMESPACE | ||||
| #if JUCE_MSVC || DOXYGEN | |||||
| #if JUCE_WIN32 || DOXYGEN | |||||
| #if JUCE_USE_INTRINSICS | #if JUCE_USE_INTRINSICS | ||||
| #pragma intrinsic (__debugbreak) | #pragma intrinsic (__debugbreak) | ||||
| /** This will always cause an assertion failure. | |||||
| It is only compiled in a debug build, (unless JUCE_LOG_ASSERTIONS is enabled | |||||
| in juce_Config.h). | |||||
| /** This will try to break the debugger if one is currently hosting this app. | |||||
| @see jassert() | |||||
| */ | |||||
| #define juce_breakDebugger __debugbreak(); | |||||
| #elif JUCE_GCC | |||||
| /** This will try to break the debugger if one is currently hosting this app. | |||||
| @see jassert() | @see jassert() | ||||
| */ | */ | ||||
| #define jassertfalse { juce_LogCurrentAssertion; if (juce_isRunningUnderDebugger()) __debugbreak(); } | |||||
| #define juce_breakDebugger asm("int $3"); | |||||
| #else | #else | ||||
| /** This will always cause an assertion failure. | |||||
| This is only compiled in a debug build. | |||||
| /** This will try to break the debugger if one is currently hosting this app. | |||||
| @see jassert() | @see jassert() | ||||
| */ | */ | ||||
| #define jassertfalse { juce_LogCurrentAssertion; if (juce_isRunningUnderDebugger()) { __asm int 3 } } | |||||
| #define juce_breakDebugger { __asm int 3 } | |||||
| #endif | #endif | ||||
| #elif defined (JUCE_MAC) | |||||
| #define jassertfalse { juce_LogCurrentAssertion; if (juce_isRunningUnderDebugger()) Debugger(); } | |||||
| #elif defined (JUCE_GCC) || defined (JUCE_LINUX) | |||||
| #define jassertfalse { juce_LogCurrentAssertion; if (juce_isRunningUnderDebugger()) asm("int $3"); } | |||||
| #elif JUCE_MAC | |||||
| #define juce_breakDebugger Debugger(); | |||||
| #elif JUCE_LINUX | |||||
| #define juce_breakDebugger kill (0, SIGTRAP); | |||||
| #endif | #endif | ||||
| //============================================================================== | |||||
| /** This will always cause an assertion failure. | |||||
| It is only compiled in a debug build, (unless JUCE_LOG_ASSERTIONS is enabled | |||||
| in juce_Config.h). | |||||
| @see jassert() | |||||
| */ | |||||
| #define jassertfalse { juce_LogCurrentAssertion; if (JUCE_NAMESPACE::juce_isRunningUnderDebugger()) juce_breakDebugger; } | |||||
| //============================================================================== | //============================================================================== | ||||
| /** Platform-independent assertion macro. | /** Platform-independent assertion macro. | ||||