summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-02-19 20:32:12 +0000
committerChris Lattner <sabre@nondot.org>2004-02-19 20:32:12 +0000
commitf73b4ca7f9c5e4a19c3fba9fa0280768b4c64891 (patch)
tree500eafc4367fd83ce3566626321727aa6746a8da
parent982774cbebd0280078ee5321ed638a266e79a597 (diff)
downloadllvm-f73b4ca7f9c5e4a19c3fba9fa0280768b4c64891.tar.gz
llvm-f73b4ca7f9c5e4a19c3fba9fa0280768b4c64891.tar.bz2
llvm-f73b4ca7f9c5e4a19c3fba9fa0280768b4c64891.tar.xz
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
-rw-r--r--tools/llvm-ar/llvm-ar.cpp5
-rw-r--r--tools/llvm-as/llvm-as.cpp1
-rw-r--r--tools/llvm-db/llvm-db.cpp2
-rw-r--r--tools/llvm-dis/llvm-dis.cpp2
-rw-r--r--tools/llvm-link/llvm-link.cpp1
-rw-r--r--tools/llvm-nm/llvm-nm.cpp3
-rw-r--r--tools/llvm-prof/llvm-prof.cpp2
-rw-r--r--tools/opt/opt.cpp1
8 files changed, 15 insertions, 2 deletions
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index 2404288d30..030ffe4914 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 <string>
#include <fstream>
#include <cstdio>
@@ -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 9be5afff11..4b66b78efb 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 124db2ba06..e450520c27 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 <iostream>
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 6b9c1c2a9e..d9c175166b 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 1b3dda790d..4fe8637482 100644
--- a/tools/llvm-link/llvm-link.cpp
+++ b/tools/llvm-link/llvm-link.cpp
@@ -84,6 +84,7 @@ static inline std::auto_ptr<Module> 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 8678536962..c5930e9372 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 <cctype>
#include <cstring>
@@ -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 3c9c3906ff..2a7789dcd5 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 <cstdio>
#include <map>
#include <set>
@@ -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 d032e24ccd..35874b2ed7 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.