@@ -93,87 +93,11 @@ fn _print(w: &mut Write, format: PrintFormat) -> io::Result<()> {
9393 Ok ( ( ) )
9494}
9595
96- fn filter_frames ( frames : & [ Frame ] ,
97- format : PrintFormat ,
98- context : & BacktraceContext ) -> ( usize , usize )
96+ fn filter_frames ( _frames : & [ Frame ] ,
97+ _format : PrintFormat ,
98+ _context : & BacktraceContext ) -> ( usize , usize )
9999{
100- if format == PrintFormat :: Full {
101- return ( 0 , 0 ) ;
102- }
103-
104- // We want to filter out frames with some prefixes
105- // from both top and bottom of the call stack.
106- static BAD_PREFIXES_TOP : & ' static [ & ' static str ] = & [
107- "_ZN3std3sys3imp9backtrace" ,
108- "ZN3std3sys3imp9backtrace" ,
109- "std::sys::imp::backtrace" ,
110- "_ZN3std10sys_common9backtrace" ,
111- "ZN3std10sys_common9backtrace" ,
112- "std::sys_common::backtrace" ,
113- "_ZN3std9panicking" ,
114- "ZN3std9panicking" ,
115- "std::panicking" ,
116- "_ZN4core9panicking" ,
117- "ZN4core9panicking" ,
118- "core::panicking" ,
119- "_ZN4core6result13unwrap_failed" ,
120- "ZN4core6result13unwrap_failed" ,
121- "core::result::unwrap_failed" ,
122- "rust_begin_unwind" ,
123- "_ZN4drop" ,
124- "mingw_set_invalid_parameter_handler" ,
125- ] ;
126- static BAD_PREFIXES_BOTTOM : & ' static [ & ' static str ] = & [
127- "_ZN3std9panicking" ,
128- "ZN3std9panicking" ,
129- "std::panicking" ,
130- "_ZN3std5panic" ,
131- "ZN3std5panic" ,
132- "std::panic" ,
133- "_ZN4core9panicking" ,
134- "ZN4core9panicking" ,
135- "core::panicking" ,
136- "_ZN3std2rt10lang_start" ,
137- "ZN3std2rt10lang_start" ,
138- "std::rt::lang_start" ,
139- "panic_unwind::__rust_maybe_catch_panic" ,
140- "__rust_maybe_catch_panic" ,
141- "_rust_maybe_catch_panic" ,
142- "__libc_start_main" ,
143- "__rust_try" ,
144- "_start" ,
145- "main" ,
146- "BaseThreadInitThunk" ,
147- "RtlInitializeExceptionChain" ,
148- "__scrt_common_main_seh" ,
149- "_ZN4drop" ,
150- "mingw_set_invalid_parameter_handler" ,
151- ] ;
152-
153- let is_good_frame = |frame : Frame , bad_prefixes : & [ & str ] | {
154- resolve_symname ( frame, |symname| {
155- if let Some ( mangled_symbol_name) = symname {
156- if !bad_prefixes. iter ( ) . any ( |s| mangled_symbol_name. starts_with ( s) ) {
157- return Ok ( ( ) )
158- }
159- }
160- Err ( io:: Error :: from ( io:: ErrorKind :: Other ) )
161- } , context) . is_ok ( )
162- } ;
163-
164- let skipped_before = frames. iter ( ) . position ( |frame| {
165- is_good_frame ( * frame, BAD_PREFIXES_TOP )
166- } ) . unwrap_or ( frames. len ( ) ) ;
167- let skipped_after = frames[ skipped_before..] . iter ( ) . rev ( ) . position ( |frame| {
168- is_good_frame ( * frame, BAD_PREFIXES_BOTTOM )
169- } ) . unwrap_or ( frames. len ( ) - skipped_before) ;
170-
171- if skipped_before + skipped_after == frames. len ( ) {
172- // Avoid showing completely empty backtraces
173- return ( 0 , 0 ) ;
174- }
175-
176- ( skipped_before, skipped_after)
100+ ( 0 , 0 )
177101}
178102
179103/// Controls how the backtrace should be formated.
0 commit comments