* Don't hide symbols when in Debug mode
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 1 Dec 2007 05:46:20 +0000 (05:46 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 1 Dec 2007 05:46:20 +0000 (05:46 +0000)
* On Linux (glibc) provide a backtrace in the test output for debugging purposes

Signed-off-by: Simon
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28275 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/WebCore.pro
WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/qt/main.cpp

index 340d26e1820945a4d4702d638fc4bdc42318fa05..a34b690434baf026e083fea2ac04c77e4a5ef496 100644 (file)
@@ -1,3 +1,13 @@
+2007-12-01  Adam Treat  <treat@kde.org>
+
+        Reviewed by Simon.
+
+        * Don't hide symbols when in Debug mode
+        * On Linux (glibc) provide a backtrace in the test output for debugging purposes
+
+
+        * WebCore.pro:
+
 2007-11-30  Alp Toker  <alp@atoker.com>
 
         Reviewed by Adam Roben.
index d106c87e78598edc941225efed80659ef9a398a5..48521beafe805c3e0c9f8392e21e124e56b979a1 100644 (file)
@@ -36,8 +36,10 @@ CONFIG -= warn_on
 *-g++*:QMAKE_CXXFLAGS += -Wreturn-type -fno-strict-aliasing
 #QMAKE_CXXFLAGS += -Wall -Wno-undef -Wno-unused-parameter
 
-contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
-unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
+CONFIG(release):!CONFIG(QTDIR_build) {
+    contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
+    unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
+}
 
 linux-*: DEFINES += HAVE_STDINT_H
 freebsd-*: DEFINES += HAVE_PTHREAD_NP_H
index adbaea6b3536037c48739a222ff76dc7114e8bb6..e8754bb3d3146f8d49838bd47fcbd0b652b97d5b 100644 (file)
@@ -1,3 +1,14 @@
+2007-12-01  Adam Treat  <treat@kde.org>
+
+        Reviewed by Simon.
+
+        * Don't hide symbols when in Debug mode
+        * On Linux (glibc) provide a backtrace in the test output for debugging purposes
+
+
+        * DumpRenderTree/qt/main.cpp:
+        (messageHandler):
+
 2007-11-30  Alp Toker  <alp@atoker.com>
 
         Reviewed by Adam Roben.
index 29437008743cf4de2a7e684186432f4b944a7db9..e48cd073f7ff6893c83df93118e07239c37de126 100644 (file)
 #include <limits.h>
 #include <signal.h>
 
+#if defined(__GLIBC__)
+#include <execinfo.h>
+#endif
+
 Q_IMPORT_PLUGIN(testplugin)
 
 void messageHandler(QtMsgType type, const char *message)
@@ -56,9 +60,36 @@ void messageHandler(QtMsgType type, const char *message)
     // do nothing
 }
 
+QString get_backtrace() {
+    QString s;
+
+#if defined(__GLIBC__)
+    void* array[256];
+    size_t size; /* number of stack frames */
+
+    size = backtrace(array, 256);
+
+    if (!size)
+        return s;
+
+    char** strings = backtrace_symbols(array, size);
+    for (int i = 0; i < size; ++i) {
+        s += QString::number(i) +
+             QLatin1String(": ") +
+             QLatin1String(strings[i]) + QLatin1String("\n");
+    }
+
+    if (strings)
+        free (strings);
+#endif
+
+    return s;
+}
+
 static void crashHandler(int sig)
 {
     fprintf(stderr, "%s\n", strsignal(sig));
+    fprintf(stderr, "%s\n", get_backtrace().toLatin1().constData());
     exit(128 + sig);
 }