diff options
| author | bors <bors@rust-lang.org> | 2014-03-13 01:11:39 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-03-13 01:11:39 -0700 |
| commit | 12b2607572d6233a1d4b4f7592573e49b505771e (patch) | |
| tree | fe0125830b682b441cc97b4ad24cc11bb2882d38 /src/rustllvm/ExecutionEngineWrapper.cpp | |
| parent | 6cbba7c54e4e1e02d4ff3ffacf46d15d0f3a039c (diff) | |
| parent | 829df69f9f7a0dd0adbf072a47fd7c7600e75211 (diff) | |
| download | rust-12b2607572d6233a1d4b4f7592573e49b505771e.tar.gz rust-12b2607572d6233a1d4b4f7592573e49b505771e.zip | |
auto merge of #12602 : alexcrichton/rust/backtrace, r=brson
Whenever a failure happens, if a program is run with `RUST_LOG=std::rt::backtrace` a backtrace will be printed to the task's stderr handle. Stack traces are uncondtionally printed on double-failure and rtabort!(). This ended up having a nontrivial implementation, and here's some highlights of it: * We're bundling libbacktrace for everything but OSX and Windows * We use libgcc_s and its libunwind apis to get a backtrace of instruction pointers * On OSX we use dladdr() to go from an instruction pointer to a symbol * On unix that isn't OSX, we use libbacktrace to get symbols * Windows, as usual, has an entirely separate implementation Lots more fun details and comments can be found in the source itself. Closes #10128
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
