diff options
Diffstat (limited to 'Source/JavaScriptCore/wtf/Assertions.h')
-rw-r--r-- | Source/JavaScriptCore/wtf/Assertions.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/wtf/Assertions.h b/Source/JavaScriptCore/wtf/Assertions.h index 3f3af72..13ece31 100644 --- a/Source/JavaScriptCore/wtf/Assertions.h +++ b/Source/JavaScriptCore/wtf/Assertions.h @@ -145,6 +145,7 @@ typedef struct { void WTFReportAssertionFailure(const char* file, int line, const char* function, const char* assertion); void WTFReportAssertionFailureWithMessage(const char* file, int line, const char* function, const char* assertion, const char* format, ...) WTF_ATTRIBUTE_PRINTF(5, 6); void WTFReportArgumentAssertionFailure(const char* file, int line, const char* function, const char* argName, const char* assertion); +void WTFReportBacktrace(); void WTFReportFatalError(const char* file, int line, const char* function, const char* format, ...) WTF_ATTRIBUTE_PRINTF(4, 5); void WTFReportError(const char* file, int line, const char* function, const char* format, ...) WTF_ATTRIBUTE_PRINTF(4, 5); void WTFLog(WTFLogChannel* channel, const char* format, ...) WTF_ATTRIBUTE_PRINTF(2, 3); @@ -176,12 +177,23 @@ void WTFLogVerbose(const char* file, int line, const char* function, WTFLogChann } while(false) #else #define CRASH() do { \ + WTFReportBacktrace(); \ *(int *)(uintptr_t)0xbbadbeef = 0; \ ((void(*)())0)(); /* More reliable, but doesn't say BBADBEEF */ \ } while(false) #endif #endif +/* BACKTRACE + + Print a backtrace to the same location as ASSERT messages. +*/ +#ifndef BACKTRACE +#define BACKTRACE() do { \ + WTFReportBacktrace(); \ +} while(false) +#endif + /* ASSERT, ASSERT_NOT_REACHED, ASSERT_UNUSED These macros are compiled out of release builds. |