diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-09-08 15:53:46 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-09-11 11:19:20 -0700 |
| commit | f4be2026dfb507e5db919cc5df8fd934e05fa0b8 (patch) | |
| tree | 278d5b3916042e7232b7ba98a5ead399a52057eb /src/libstd/rt/backtrace.rs | |
| parent | 192c37537bc6ffaee06e8b4099dd09ae43bcfee7 (diff) | |
| download | rust-f4be2026dfb507e5db919cc5df8fd934e05fa0b8.tar.gz rust-f4be2026dfb507e5db919cc5df8fd934e05fa0b8.zip | |
std: Internalize almost all of `std::rt`
This commit does some refactoring to make almost all of the `std::rt` private. Specifically, the following items are no longer part of its API: * DEFAULT_ERROR_CODE * backtrace * unwind * args * at_exit * cleanup * heap (this is just alloc::heap) * min_stack * util The module is now tagged as `#[doc(hidden)]` as the only purpose it's serve is an entry point for the `panic!` macro via the `begin_unwind` and `begin_unwind_fmt` reexports.
Diffstat (limited to 'src/libstd/rt/backtrace.rs')
| -rw-r--r-- | src/libstd/rt/backtrace.rs | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/src/libstd/rt/backtrace.rs b/src/libstd/rt/backtrace.rs deleted file mode 100644 index 9e7ed89bae1..00000000000 --- a/src/libstd/rt/backtrace.rs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2014 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -//! Simple backtrace functionality (to print on panic) - -#![allow(non_camel_case_types)] - -use env; -use sync::atomic::{self, Ordering}; - -pub use sys::backtrace::write; - -// For now logging is turned off by default, and this function checks to see -// whether the magical environment variable is present to see if it's turned on. -pub fn log_enabled() -> bool { - static ENABLED: atomic::AtomicIsize = atomic::AtomicIsize::new(0); - match ENABLED.load(Ordering::SeqCst) { - 1 => return false, - 2 => return true, - _ => {} - } - - let val = match env::var_os("RUST_BACKTRACE") { - Some(..) => 2, - None => 1, - }; - ENABLED.store(val, Ordering::SeqCst); - val == 2 -} - -#[cfg(test)] -mod tests { - use prelude::v1::*; - use sys_common; - macro_rules! t { ($a:expr, $b:expr) => ({ - let mut m = Vec::new(); - sys_common::backtrace::demangle(&mut m, $a).unwrap(); - assert_eq!(String::from_utf8(m).unwrap(), $b); - }) } - - #[test] - fn demangle() { - t!("test", "test"); - t!("_ZN4testE", "test"); - t!("_ZN4test", "_ZN4test"); - t!("_ZN4test1a2bcE", "test::a::bc"); - } - - #[test] - fn demangle_dollars() { - t!("_ZN4$RP$E", ")"); - t!("_ZN8$RF$testE", "&test"); - t!("_ZN8$BP$test4foobE", "*test::foob"); - t!("_ZN9$u20$test4foobE", " test::foob"); - } - - #[test] - fn demangle_many_dollars() { - t!("_ZN13test$u20$test4foobE", "test test::foob"); - t!("_ZN12test$BP$test4foobE", "test*test::foob"); - } - - #[test] - fn demangle_windows() { - t!("ZN4testE", "test"); - t!("ZN13test$u20$test4foobE", "test test::foob"); - t!("ZN12test$RF$test4foobE", "test&test::foob"); - } -} |
