summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/Signals.cpp
Commit message (Collapse)AuthorAgeFilesLines
* bugpoint: disabling symbolication of bugpoint-executed programsDavid Blaikie2017-06-091-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial implementation - needs similar work/testing for other tools bugpoint invokes (llc, lli I think, maybe more). Alternatively (as suggested by chandlerc@) an environment variable could be used. This would allow the option to pass transparently through user scripts, pass to compilers if they happened to be LLVM-ish, etc. I worry a bit about using cl::opt in the crash handling code - LLVM might crash early, perhaps before the cl::opt is properly initialized? Or at least before arguments have been parsed? - should be OK since it defaults to "pretty", so if the crash is very early in opt parsing, etc, then crash reports will still be symbolized. I shyed away from doing this with an environment variable when I realized that would require copying the existing environment and appending the env variable of interest. But it seems there's no existing LLVM API for accessing the environment (even the Support tests for process launching have their own ifdefs for getting the environment). It could be added, but seemed like a higher bar/untested codepath to actually add environment variables. Most importantly, this reduces the runtime of test/BugPoint/metadata.ll in a split-dwarf Debug build from 1m34s to 6.5s by avoiding a lot of symbolication. (this wasn't a problem for non-split-dwarf builds only because the executable was too large to map into memory (due to bugpoint setting a 400MB memory (including address space - not sure why? Going to remove that) limit on the child process) so symbolication would fail fast & wouldn't spend all that time parsing DWARF, etc) Reviewers: chandlerc, dannyb Differential Revision: https://reviews.llvm.org/D33804 llvm-svn: 305056
* Sort the remaining #include lines in include/... and lib/....Chandler Carruth2017-06-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | I did this a long time ago with a janky python script, but now clang-format has built-in support for this. I fed clang-format every line with a #include and let it re-sort things according to the precise LLVM rules for include ordering baked into clang-format these days. I've reverted a number of files where the results of sorting includes isn't healthy. Either places where we have legacy code relying on particular include ordering (where possible, I'll fix these separately) or where we have particular formatting around #include lines that I didn't want to disturb in this patch. This patch is *entirely* mechanical. If you get merge conflicts or anything, just ignore the changes in this patch and run clang-format over your #include lines in the files. Sorry for any noise here, but it is important to keep these things stable. I was seeing an increasing number of patches with irrelevant re-ordering of #include lines because clang-format was used. This patch at least isolates that churn, makes it easy to skip when resolving conflicts, and gets us to a clean baseline (again). llvm-svn: 304787
* Remove name space pollution from Signals.cppKristof Beyls2017-03-311-1/+0
| | | | llvm-svn: 299224
* Search for llvm-symbolizer binary in the same directory as argv[0], beforeRichard Smith2016-06-091-11/+23
| | | | | | | looking for it along $PATH. This allows installs of LLVM tools outside of $PATH to find the symbolizer and produce pretty backtraces if they crash. llvm-svn: 272232
* Appease hosts without HAVE_BACKTRACE nor ENABLE_BACKTRACES.NAKAMURA Takumi2015-11-081-0/+4
| | | | | | | llvm/lib/Support/Signals.cpp:66:13: warning: unused function 'printSymbolizedStackTrace' [-Wunused-function] llvm/lib/Support/Signals.cpp:52:13: warning: function 'findModulesAndOffsets' has internal linkage but is not defined [-Wundefined-internal] llvm-svn: 252418
* [Windows] Symbolize with llvm-symbolizer instead of dbghelp in a self-hostReid Kleckner2015-11-051-1/+123
| | | | | | | | | | | | | | | | Summary: llvm-symbolizer understands both PDBs and DWARF, so it is more likely to succeed at symbolization. If llvm-symbolizer is unavailable, we will fall back to dbghelp. This also makes our crash traces more similar between Windows and Linux. Reviewers: Bigcheese, zturner, chapuni Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12884 llvm-svn: 252118
* Rename RunCallBacksToRun to llvm::sys::RunSignalHandlersYaron Keren2015-07-221-1/+1
| | | | | | | | | | | | And expose it in Signals.h, allowing clients to call it directly, possibly LLVMErrorHandler which currently calls RunInterruptHandlers but not RunSignalHandlers, thus for example not printing the stack backtrace on Unixish OSes. On Windows it does happen because RunInterruptHandlers ends up calling the callbacks as well via Cleanup(). This difference in behaviour and code structures in */Signals.inc should be patched in the future. llvm-svn: 242936
* De-duplicate Unix & Windows CallBacksToRunYaron Keren2015-07-221-1/+13
| | | | | | | | | Move CallBacksToRun into the common Signals.cpp, create RunCallBacksToRun() and use these in both Unix/Signals.inc and Windows/Signals.inc. Lots of potential code to be merged here. llvm-svn: 242925
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-1/+1
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Merge System into Support.Michael J. Spencer2010-11-291-0/+34
| | | | llvm-svn: 120298
* Signals support has been moved to lib/SystemReid Spencer2004-08-291-138/+0
| | | | llvm-svn: 16097
* It is not possible to catch SIGKILL, don't bother trying.Chris Lattner2004-08-041-1/+1
| | | | llvm-svn: 15496
* Signals.h header moved. Eventually this should move into a lib/System library,Chris Lattner2004-05-271-1/+1
| | | | | | but not right now. llvm-svn: 13811
* `cat' is usually in /bin, not /usr/bin, at least on our systems.Misha Brukman2004-02-211-1/+1
| | | | llvm-svn: 11690
* When printing a stack trace, demangle it if possible. Since we are potentiallyChris Lattner2004-02-211-5/+61
| | | | | | | in a signal handler, allocating memory or doing other unsafe things is bad, which means we should do it in a different process. llvm-svn: 11689
* Use backtrace() and include execinfo.h, if they were detected by autoconf.Brian Gaeke2004-02-201-5/+10
| | | | llvm-svn: 11658
* Disable the stack trace thing until we can get an autoconf test for it. ThisChris Lattner2004-02-191-3/+3
| | | | | | call breaks on sparcs llvm-svn: 11635
* Implement new functionChris Lattner2004-02-191-0/+6
| | | | llvm-svn: 11631
* Print stacktrace in STDERR before dying on a fatal signal. CurrentlyAlkis Evlogimenos2004-02-191-1/+7
| | | | | | the symbols are not demangled. llvm-svn: 11620
* Finegrainify namespacificationChris Lattner2003-12-141-5/+2
| | | | llvm-svn: 10464
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Fixed spelling & grammar.Misha Brukman2003-09-161-1/+1
| | | | llvm-svn: 8559
* Move #include from a header to hereChris Lattner2003-08-011-0/+1
| | | | llvm-svn: 7480
* Merged in autoconf branch. This provides configuration via the autoconfJohn Criswell2003-06-301-1/+1
| | | | | | system. llvm-svn: 7014
* Make _sure_ we don't go into an infinite loop if a signal happens!Chris Lattner2003-05-271-0/+1
| | | | llvm-svn: 6351
* Add using declarationsChris Lattner2003-05-221-3/+2
| | | | llvm-svn: 6305
* Submitted by Casey Carter:Chris Lattner2002-09-131-2/+4
| | | | | | | | ISSUE: Linux doesn't have any steenking SIGEMT signal, as referred to in lib/Support/Signals.cpp. ACTION: Wrap the use with a #ifdef SIGEMT / #endif. llvm-svn: 3700
* changes to make it compatible with 64bit gccAnand Shukla2002-06-251-4/+5
| | | | llvm-svn: 2791
* Add new api for basic signal handling for toolsChris Lattner2002-04-181-0/+53
llvm-svn: 2302
OpenPOWER on IntegriCloud