aboutsummaryrefslogtreecommitdiff
path: root/src/common/backtrace.c
Commit message (Collapse)AuthorAge
* Log a backtrace when the sandbox finds a failureNick Mathewson2014-04-10
| | | | | | | This involves some duplicate code between backtrace.c and sandbox.c, but I don't see a way around it: calling more functions would mean adding more steps to our call stack, and running clean_backtrace() against the wrong point on the stack.
* Trivial comment fix.Nick Mathewson2014-02-25
|
* Threadproof our log_backtrace implementationNick Mathewson2014-02-24
| | | | | | | | It's possible for two threads to hit assertion failures at the same time. If that happens, let's keep them from stomping on the same cb_buf field. Fixes bug 11048; bugfix on 0.2.5.2-alpha. Reported by "cypherpunks".
* Add a _GNU_SOURCE definition to backtrace.c to fix compilationNick Mathewson2013-11-18
|
* Whoops -- add missing defined().Nick Mathewson2013-11-18
|
* Make header includes match declarations in pc_from_ucontext.m4Nick Mathewson2013-11-18
| | | | | | With any luck, this will clean up errors where we detect that REG_{EIP,RIP} is present in autoconf, but when we go to include it, it isn't there.
* Reseolve DOCDOC and XXXXs in backtrace.cNick Mathewson2013-11-18
|
* Make backtrace handler handle signals correctly.Nick Mathewson2013-11-18
| | | | | This meant moving a fair bit of code around, and writing a signal cleanup function. Still pretty nice from what I can tell, though.
* Add a sighandler-safe logging mechanismNick Mathewson2013-11-18
| | | | | | | | | We had accidentially grown two fake ones: one for backtrace.c, and one for sandbox.c. Let's do this properly instead. Now, when we configure logs, we keep track of fds that should get told about bad stuff happening from signal handlers. There's another entry point for these that avoids using non-signal-handler-safe functions.
* Basic backtrace abilityNick Mathewson2013-11-18
On platforms with the backtrace/backtrace_symbols_fd interface, Tor can now dump stack traces on assertion failure. By default, I log them to DataDir/stack_dump and to stderr.