summaryrefslogtreecommitdiffstats
path: root/lldb/tools
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-07-17 10:04:19 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-07-17 10:04:19 +0000
commit2ad6e0a6966afc1c74720448c8a0f76a3c2a1aaa (patch)
tree3f0b46672afbbbbabf2574215626e80ea007f73e /lldb/tools
parenta35798db9155e5b794e76e860e59685dbd16476c (diff)
downloadbcm5719-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.cpp7
-rw-r--r--lldb/tools/lldb-mi/MIDriverMain.cpp7
-rw-r--r--lldb/tools/lldb-server/lldb-server.cpp7
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) {
OpenPOWER on IntegriCloud