summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestcase.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@theqtcompany.com>2015-04-27 15:51:03 +0200
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2015-04-27 17:03:51 +0000
commit73a48c16189fcc1c1dd783e05c51d47711d554e2 (patch)
tree234ededf4bf890d00092081604ce032349796c90 /src/testlib/qtestcase.cpp
parent7ebec0fa848de299d4cdee06ccc611ee46494fbf (diff)
Add support for stack traces in testlib on Mac
Use lldb to generate a stack trace. Change-Id: I30b0ab656dda66b6aaa05841df641bee004702f0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Diffstat (limited to 'src/testlib/qtestcase.cpp')
-rw-r--r--src/testlib/qtestcase.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 6799ae1087..e1e6805a0f 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -121,6 +121,17 @@ static void stackTrace()
if (system(cmd) == -1)
fprintf(stderr, "calling gdb failed\n");
fprintf(stderr, "========= End of stack trace ==============\n");
+#elif defined(Q_OS_OSX)
+ fprintf(stderr, "\n========= Received signal, dumping stack ==============\n");
+ char cmd[512];
+ qsnprintf(cmd, 512, "lldb -p %d 2>/dev/null <<EOF\n"
+ "bt all\n"
+ "quit\n"
+ "EOF\n",
+ (int)getpid());
+ if (system(cmd) == -1)
+ fprintf(stderr, "calling lldb failed\n");
+ fprintf(stderr, "========= End of stack trace ==============\n");
#endif
}