about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2017-02-25 17:18:17 +0300
committerYamakaky <yamakaky@gmail.com>2017-02-25 09:18:17 -0500
commit53a5d564354727debf37ae6bd807dd6fd65308dc (patch)
treea4f7cefe0f8b8cbd9461697bf72c5a1ec516df46 /src/libstd
parent0982a2830460e20524d0227f83a21ce4a37c94e5 (diff)
downloadrust-53a5d564354727debf37ae6bd807dd6fd65308dc.tar.gz
rust-53a5d564354727debf37ae6bd807dd6fd65308dc.zip
Fix tests on ARM Linux (#3)
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sys/unix/backtrace/tracing/gcc_s.rs4
-rw-r--r--src/libstd/sys_common/backtrace.rs1
2 files changed, 4 insertions, 1 deletions
diff --git a/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs b/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs
index 8691fe55e7c..cfeabaddda9 100644
--- a/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs
+++ b/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs
@@ -53,7 +53,9 @@ pub fn unwind_backtrace(frames: &mut [Frame])
     // See libunwind:src/unwind/Backtrace.c for the return values.
     // No, there is no doc.
     match result_unwind {
-        uw::_URC_END_OF_STACK | uw::_URC_FATAL_PHASE1_ERROR => {
+        // These return codes seem to be benign and need to be ignored for backtraces
+        // to show up properly on all tested platforms.
+        uw::_URC_END_OF_STACK | uw::_URC_FATAL_PHASE1_ERROR | uw::_URC_FAILURE => {
             Ok((cx.idx, BacktraceContext))
         }
         _ => {
diff --git a/src/libstd/sys_common/backtrace.rs b/src/libstd/sys_common/backtrace.rs
index 6618b1dd03a..08801f543ef 100644
--- a/src/libstd/sys_common/backtrace.rs
+++ b/src/libstd/sys_common/backtrace.rs
@@ -134,6 +134,7 @@ fn filter_frames(frames: &[Frame],
         "__libc_start_main",
         "__rust_try",
         "_start",
+        "main",
         "BaseThreadInitThunk",
         "__scrt_common_main_seh",
         "_ZN4drop",