diff options
author | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-04-27 15:51:03 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-04-27 17:03:51 +0000 |
commit | 73a48c16189fcc1c1dd783e05c51d47711d554e2 (patch) | |
tree | 234ededf4bf890d00092081604ce032349796c90 /src/testlib/qtestcase.cpp | |
parent | 7ebec0fa848de299d4cdee06ccc611ee46494fbf (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.cpp | 11 |
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 } |