rust/src/libstd
bors 12b2607572 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
2014-03-13 01:11:39 -07:00
..
comm std: Relax an assertion in oneshot selection 2014-03-12 13:39:47 -07:00
fmt std: Switch stdout/stderr to buffered by default 2014-03-01 10:06:20 -08:00
hash Rename all variables that have uppercase characters in their names to use only lowercase characters 2014-03-04 21:23:36 -05:00
io auto merge of #12414 : DaGenix/rust/failing-iterator-wrappers, r=alexcrichton 2014-03-12 23:51:40 -07:00
num Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
path std: allow io::File* structs to be hashable 2014-03-12 18:58:54 -07:00
rt Add basic backtrace functionality 2014-03-13 00:24:20 -07:00
sync std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
unstable std: Small cleanup and test improvement 2014-02-27 12:03:57 -08:00
any.rs Cleaned up std::any 2014-03-04 21:10:23 +01:00
ascii.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
bool.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
c_str.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
cast.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
cell.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
char.rs doc: add two missing char methods doc-strings 2014-03-08 09:10:12 +01:00
cleanup.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
clone.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
cmp.rs create a sensible comparison trait hierarchy 2014-03-07 22:45:22 -05:00
container.rs std: uniform modules titles for doc 2013-12-27 09:49:11 +01:00
default.rs libstd: Remove all support code related to @mut 2014-01-03 14:02:00 -08:00
from_str.rs std: uniform modules titles for doc 2013-12-27 09:49:11 +01:00
gc.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
intrinsics.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
iter.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
kinds.rs fix typos with with repeated words, just like this sentence. 2014-03-06 20:19:14 +09:00
lib.rs std: Move rand to librand. 2014-03-12 11:31:05 +11:00
libc.rs Remove remaining nolink usages.(fixes #12810) 2014-03-12 15:01:25 -07:00
local_data.rs rustc: Remove matching on ~str from the language 2014-03-12 19:17:36 -04:00
logging.rs std: Switch stdout/stderr to buffered by default 2014-03-01 10:06:20 -08:00
macros.rs std: stop vec!() warning about unused mutability. 2014-03-07 18:07:25 +11:00
managed.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
mem.rs std: Move intrinsics to std::intrinsics. 2014-02-23 01:07:53 -08:00
ops.rs Add the DerefImm and DerefMut traits. 2014-03-04 16:41:48 +02:00
option.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
os.rs Remove remaining nolink usages.(fixes #12810) 2014-03-12 15:01:25 -07:00
owned.rs librustc: Implement placement box for GC and unique pointers. 2014-01-09 16:05:34 -08:00
prelude.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
ptr.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
raw.rs Cleaned up std::any 2014-03-04 21:10:23 +01:00
rc.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
reference.rs Cleaned up imports per coding standards. 2014-02-07 09:59:19 -08:00
reflect.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
repr.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
result.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00
rtdeps.rs Invoke gcc with -nodefaultlibs 2014-02-14 08:07:46 -08:00
str.rs Use generic impls for Hash 2014-03-12 13:39:47 -07:00
task.rs rustc: Remove matching on ~str from the language 2014-03-12 19:17:36 -04:00
to_str.rs Remove all ToStr impls, add Show impls 2014-02-23 20:51:56 -08:00
tuple.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
unicode.rs Remove dead codes 2013-12-08 02:55:28 -05:00
unit.rs Add some missing Show implementations in libstd 2014-02-13 12:54:01 -08:00
vec_ng.rs Port partition method from ~[T] to Vec<T>, for use early-late lifetime code. 2014-03-12 07:51:49 +01:00
vec.rs Removed DeepClone. Issue #12698. 2014-03-08 15:09:00 -05:00