Title: [150196] trunk/Source
Revision
150196
Author
[email protected]
Date
2013-05-16 12:03:16 -0700 (Thu, 16 May 2013)

Log Message

Crash properly on iOS
https://bugs.webkit.org/show_bug.cgi?id=115782

Reviewed by Darin Adler.

Improve crash handling. <rdar://problem/13842771>

* wtf/Assertions.cpp:
* wtf/Assertions.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_CoreExports.def (150195 => 150196)


--- trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_CoreExports.def	2013-05-16 19:00:36 UTC (rev 150195)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_CoreExports.def	2013-05-16 19:03:16 UTC (rev 150196)
@@ -555,8 +555,8 @@
     ?writeBarrier@HandleSet@JSC@@QAEXPAVJSValue@2@ABV32@@Z
     ?yield@WTF@@YAXXZ
     ?zeroTime@MediaTime@WTF@@SAABV12@XZ
+    WTFCrash
     WTFGetBacktrace
-    WTFInvokeCrashHook
     WTFLog
     WTFLogAlways
     WTFLogVerbose

Modified: trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_CoreExportGenerator/_javascript_CoreExports.def.in (150195 => 150196)


--- trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_CoreExportGenerator/_javascript_CoreExports.def.in	2013-05-16 19:00:36 UTC (rev 150195)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_CoreExportGenerator/_javascript_CoreExports.def.in	2013-05-16 19:03:16 UTC (rev 150196)
@@ -554,8 +554,8 @@
     ?writeBarrier@HandleSet@JSC@@QAEXPAVJSValue@2@ABV32@@Z
     ?yield@WTF@@YAXXZ
     ?zeroTime@MediaTime@WTF@@SAABV12@XZ
+    WTFCrash
     WTFGetBacktrace
-    WTFInvokeCrashHook
     WTFLog
     WTFLogAlways
     WTFLogVerbose

Modified: trunk/Source/WTF/ChangeLog (150195 => 150196)


--- trunk/Source/WTF/ChangeLog	2013-05-16 19:00:36 UTC (rev 150195)
+++ trunk/Source/WTF/ChangeLog	2013-05-16 19:03:16 UTC (rev 150196)
@@ -1,3 +1,15 @@
+2013-05-16  Benjamin Poulain  <[email protected]>
+
+        Crash properly on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=115782
+
+        Reviewed by Darin Adler.
+
+        Improve crash handling. <rdar://problem/13842771>
+
+        * wtf/Assertions.cpp:
+        * wtf/Assertions.h:
+
 2013-05-15  Ryuan Choi  <[email protected]>
 
         Unreviewed build fix after r150123

Modified: trunk/Source/WTF/wtf/Assertions.cpp (150195 => 150196)


--- trunk/Source/WTF/wtf/Assertions.cpp	2013-05-16 19:00:36 UTC (rev 150195)
+++ trunk/Source/WTF/wtf/Assertions.cpp	2013-05-16 19:03:16 UTC (rev 150196)
@@ -326,10 +326,19 @@
     globalHook = function;
 }
 
-void WTFInvokeCrashHook()
+void WTFCrash()
 {
     if (globalHook)
         globalHook();
+
+    WTFReportBacktrace();
+    *(int *)(uintptr_t)0xbbadbeef = 0;
+    // More reliable, but doesn't say BBADBEEF.
+#if COMPILER(CLANG)
+    __builtin_trap();
+#else
+    ((void(*)())0)();
+#endif
 }
 
 #if HAVE(SIGNAL_H)

Modified: trunk/Source/WTF/wtf/Assertions.h (150195 => 150196)


--- trunk/Source/WTF/wtf/Assertions.h	2013-05-16 19:00:36 UTC (rev 150195)
+++ trunk/Source/WTF/wtf/Assertions.h	2013-05-16 19:03:16 UTC (rev 150196)
@@ -123,7 +123,6 @@
 
 typedef void (*WTFCrashHookFunction)();
 WTF_EXPORT_PRIVATE void WTFSetCrashHook(WTFCrashHookFunction);
-WTF_EXPORT_PRIVATE void WTFInvokeCrashHook();
 WTF_EXPORT_PRIVATE void WTFInstallReportBacktraceOnCrashHook();
 
 #ifdef __cplusplus
@@ -138,30 +137,24 @@
 
    Signals are ignored by the crash reporter on OS X so we must do better.
 */
-#ifndef CRASH
 #if COMPILER(CLANG)
-#define CRASH() \
-    (WTFReportBacktrace(), \
-     WTFInvokeCrashHook(), \
-     (*(int *)(uintptr_t)0xbbadbeef = 0), \
-     __builtin_trap())
-#else
-#define CRASH() \
-    (WTFReportBacktrace(), \
-     WTFInvokeCrashHook(), \
-     (*(int *)(uintptr_t)0xbbadbeef = 0), \
-     ((void(*)())0)() /* More reliable, but doesn't say BBADBEEF */ \
-    )
-#endif
-#endif
-
-#if COMPILER(CLANG)
 #define NO_RETURN_DUE_TO_CRASH NO_RETURN
 #else
 #define NO_RETURN_DUE_TO_CRASH
 #endif
 
+#ifndef CRASH
+#define CRASH() WTFCrash()
+#endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+WTF_EXPORT_PRIVATE void WTFCrash() NO_RETURN_DUE_TO_CRASH;
+#ifdef __cplusplus
+}
+#endif
+
 /* BACKTRACE
 
   Print a backtrace to the same location as ASSERT messages.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to