From f73b4ca7f9c5e4a19c3fba9fa0280768b4c64891 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 19 Feb 2004 20:32:12 +0000 Subject: [PATCH] Make sure to print a stack trace whenever an error signal is delivered to the tool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11632 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-ar/llvm-ar.cpp | 5 +++-- tools/llvm-as/llvm-as.cpp | 1 + tools/llvm-db/llvm-db.cpp | 2 ++ tools/llvm-dis/llvm-dis.cpp | 2 ++ tools/llvm-link/llvm-link.cpp | 1 + tools/llvm-nm/llvm-nm.cpp | 3 +++ tools/llvm-prof/llvm-prof.cpp | 2 ++ tools/opt/opt.cpp | 1 + 8 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 2404288d304..030ffe4914f 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -15,6 +15,7 @@ #include "llvm/Bytecode/Reader.h" #include "Support/CommandLine.h" #include "Support/FileUtilities.h" +#include "Support/Signals.h" #include #include #include @@ -544,9 +545,9 @@ void parseCL() { } int main(int argc, char **argv) { - - //Parse Command line options cl::ParseCommandLineOptions(argc, argv); + PrintStackTraceOnErrorSignal(); + parseCL(); //Create archive! diff --git a/tools/llvm-as/llvm-as.cpp b/tools/llvm-as/llvm-as.cpp index 9be5afff116..4b66b78efb7 100644 --- a/tools/llvm-as/llvm-as.cpp +++ b/tools/llvm-as/llvm-as.cpp @@ -45,6 +45,7 @@ DisableVerify("disable-verify", cl::Hidden, int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n"); + PrintStackTraceOnErrorSignal(); std::ostream *Out = 0; try { diff --git a/tools/llvm-db/llvm-db.cpp b/tools/llvm-db/llvm-db.cpp index 124db2ba06a..e450520c278 100644 --- a/tools/llvm-db/llvm-db.cpp +++ b/tools/llvm-db/llvm-db.cpp @@ -14,6 +14,7 @@ #include "CLIDebugger.h" #include "Support/CommandLine.h" +#include "Support/Signals.h" #include using namespace llvm; @@ -51,6 +52,7 @@ namespace { int main(int argc, char **argv, char * const *envp) { cl::ParseCommandLineOptions(argc, argv, " llvm source-level debugger\n"); + PrintStackTraceOnErrorSignal(); if (Version || !Quiet) { std::cout << "llvm-db: The LLVM source-level debugger\n"; diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp index 6b9c1c2a9e1..d9c175166bd 100644 --- a/tools/llvm-dis/llvm-dis.cpp +++ b/tools/llvm-dis/llvm-dis.cpp @@ -53,6 +53,8 @@ WriteMode(cl::desc("Specify the output format:"), int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n"); + PrintStackTraceOnErrorSignal(); + std::ostream *Out = &std::cout; // Default to printing to stdout... std::string ErrorMessage; diff --git a/tools/llvm-link/llvm-link.cpp b/tools/llvm-link/llvm-link.cpp index 1b3dda790d3..4fe8637482c 100644 --- a/tools/llvm-link/llvm-link.cpp +++ b/tools/llvm-link/llvm-link.cpp @@ -84,6 +84,7 @@ static inline std::auto_ptr LoadFile(const std::string &FN) { int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm linker\n"); + PrintStackTraceOnErrorSignal(); assert(InputFilenames.size() > 0 && "OneOrMore is not working"); unsigned BaseArg = 0; diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp index 8678536962d..c5930e93728 100644 --- a/tools/llvm-nm/llvm-nm.cpp +++ b/tools/llvm-nm/llvm-nm.cpp @@ -20,6 +20,7 @@ #include "llvm/Bytecode/Reader.h" #include "Support/CommandLine.h" #include "Support/FileUtilities.h" +#include "Support/Signals.h" #include #include @@ -146,6 +147,8 @@ void DumpSymbolNamesFromFile (std::string &Filename) { int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm symbol table dumper\n"); + PrintStackTraceOnErrorSignal(); + ToolName = argv[0]; if (BSDFormat) OutputFormat = bsd; if (POSIXFormat) OutputFormat = posix; diff --git a/tools/llvm-prof/llvm-prof.cpp b/tools/llvm-prof/llvm-prof.cpp index 3c9c3906ff3..2a7789dcd53 100644 --- a/tools/llvm-prof/llvm-prof.cpp +++ b/tools/llvm-prof/llvm-prof.cpp @@ -18,6 +18,7 @@ #include "llvm/Analysis/ProfileInfoLoader.h" #include "llvm/Bytecode/Reader.h" #include "Support/CommandLine.h" +#include "Support/Signals.h" #include #include #include @@ -80,6 +81,7 @@ namespace { int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm profile dump decoder\n"); + PrintStackTraceOnErrorSignal(); // Read in the bytecode file... std::string ErrorMessage; diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index d032e24ccd0..35874b2ed7e 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -72,6 +72,7 @@ QuietA("quiet", cl::desc("Alias for -q"), cl::aliasopt(Quiet)); int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .bc modular optimizer\n"); + PrintStackTraceOnErrorSignal(); // Allocate a full target machine description only if necessary... // FIXME: The choice of target should be controllable on the command line. -- 2.34.1