@@ -173,6 +173,10 @@ impl fmt::Debug for Backtrace {
173
173
let mut dbg = fmt. debug_list ( ) ;
174
174
175
175
for frame in & capture. frames {
176
+ if frame. frame . ip ( ) . is_null ( ) {
177
+ continue ;
178
+ }
179
+
176
180
dbg. entries ( & frame. symbols ) ;
177
181
}
178
182
@@ -182,20 +186,20 @@ impl fmt::Debug for Backtrace {
182
186
183
187
impl fmt:: Debug for BacktraceSymbol {
184
188
fn fmt ( & self , fmt : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
185
- let mut dbg = fmt. debug_struct ( "" ) ;
189
+ let mut dbg = fmt. debug_map ( ) ;
186
190
187
191
if let Some ( fn_name) = self . name . as_ref ( ) . map ( |b| backtrace:: SymbolName :: new ( b) ) {
188
- dbg. field ( "fn" , & format_args ! ( "\" {}\" " , fn_name) ) ;
192
+ dbg. entry ( & "fn" , & format_args ! ( "\" {}\" " , fn_name) ) ;
189
193
} else {
190
- dbg. field ( "fn" , & "<unknown>" ) ;
194
+ dbg. entry ( & "fn" , & "<unknown>" ) ;
191
195
}
192
196
193
197
if let Some ( fname) = self . filename . as_ref ( ) {
194
- dbg. field ( "file" , fname) ;
198
+ dbg. entry ( & "file" , fname) ;
195
199
}
196
200
197
201
if let Some ( line) = self . lineno . as_ref ( ) {
198
- dbg. field ( "line" , line) ;
202
+ dbg. entry ( & "line" , line) ;
199
203
}
200
204
201
205
dbg. finish ( )
@@ -415,6 +419,7 @@ mod tests {
415
419
eprintln ! ( "captured: {:?}" , bt) ;
416
420
eprintln ! ( "display print: {}" , bt) ;
417
421
eprintln ! ( "resolved: {:?}" , bt) ;
422
+ eprintln ! ( "resolved alt: {:#?}" , bt) ;
418
423
unimplemented ! ( ) ;
419
424
}
420
425
}
0 commit comments