diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2018-07-17 10:04:19 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2018-07-17 10:04:19 +0000 |
commit | 2ad6e0a6966afc1c74720448c8a0f76a3c2a1aaa (patch) | |
tree | 3f0b46672afbbbbabf2574215626e80ea007f73e /lldb/tools | |
parent | a35798db9155e5b794e76e860e59685dbd16476c (diff) | |
download | bcm5719-llvm-2ad6e0a6966afc1c74720448c8a0f76a3c2a1aaa.tar.gz bcm5719-llvm-2ad6e0a6966afc1c74720448c8a0f76a3c2a1aaa.zip |
Move pretty stack trace printer into driver.
We used to have a pretty stack trace printer in SystemInitializerCommon.
This was disabled on Apple because we didn't want the library to be
setting signal handlers, as this was causing issues when loaded into
Xcode. However, I think it's useful to have this for the LLDB driver, so
I moved it up to use the PrettyStackTraceProgram in the driver's main.
Differential revision: https://reviews.llvm.org/D49377
llvm-svn: 337261
Diffstat (limited to 'lldb/tools')
-rw-r--r-- | lldb/tools/driver/Driver.cpp | 7 | ||||
-rw-r--r-- | lldb/tools/lldb-mi/MIDriverMain.cpp | 7 | ||||
-rw-r--r-- | lldb/tools/lldb-server/lldb-server.cpp | 7 |
3 files changed, 21 insertions, 0 deletions
diff --git a/lldb/tools/driver/Driver.cpp b/lldb/tools/driver/Driver.cpp index e28093482f3..f3391a55e0d 100644 --- a/lldb/tools/driver/Driver.cpp +++ b/lldb/tools/driver/Driver.cpp @@ -41,7 +41,10 @@ #include "lldb/API/SBStringList.h" #include "lldb/API/SBTarget.h" #include "lldb/API/SBThread.h" +#include "llvm/ADT/StringRef.h" #include "llvm/Support/ConvertUTF.h" +#include "llvm/Support/PrettyStackTrace.h" +#include "llvm/Support/Signals.h" #include <thread> #if !defined(__APPLE__) @@ -1231,6 +1234,10 @@ main(int argc, char const *argv[]) const char **argv = argvPointers.data(); #endif + llvm::StringRef ToolName = argv[0]; + llvm::sys::PrintStackTraceOnErrorSignal(ToolName); + llvm::PrettyStackTraceProgram X(argc, argv); + SBDebugger::Initialize(); SBHostOS::ThreadCreated("<lldb.driver.main-thread>"); diff --git a/lldb/tools/lldb-mi/MIDriverMain.cpp b/lldb/tools/lldb-mi/MIDriverMain.cpp index 3b382913a6b..1b3521e8f03 100644 --- a/lldb/tools/lldb-mi/MIDriverMain.cpp +++ b/lldb/tools/lldb-mi/MIDriverMain.cpp @@ -28,6 +28,9 @@ // Third party headers: #include "lldb/API/SBHostOS.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/PrettyStackTrace.h" +#include "llvm/Support/Signals.h" #include <atomic> #include <csignal> #include <stdio.h> @@ -169,6 +172,10 @@ int main(int argc, char const *argv[]) { #endif // _WIN32 #endif // MICONFIG_DEBUG_SHOW_ATTACH_DBG_DLG + llvm::StringRef ToolName = argv[0]; + llvm::sys::PrintStackTraceOnErrorSignal(ToolName); + llvm::PrettyStackTraceProgram X(argc, argv); + // *** Order is important here *** bool bOk = DriverSystemInit(); if (!bOk) { diff --git a/lldb/tools/lldb-server/lldb-server.cpp b/lldb/tools/lldb-server/lldb-server.cpp index 157b493093a..f05c96cfaa9 100644 --- a/lldb/tools/lldb-server/lldb-server.cpp +++ b/lldb/tools/lldb-server/lldb-server.cpp @@ -12,7 +12,10 @@ #include "lldb/lldb-private.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/StringRef.h" #include "llvm/Support/ManagedStatic.h" +#include "llvm/Support/PrettyStackTrace.h" +#include "llvm/Support/Signals.h" #include <stdio.h> #include <stdlib.h> @@ -45,6 +48,10 @@ static void terminate() { g_debugger_lifetime->Terminate(); } // main //---------------------------------------------------------------------- int main(int argc, char *argv[]) { + llvm::StringRef ToolName = argv[0]; + llvm::sys::PrintStackTraceOnErrorSignal(ToolName); + llvm::PrettyStackTraceProgram X(argc, argv); + int option_error = 0; const char *progname = argv[0]; if (argc < 2) { |