@@ -257,7 +257,17 @@ defmodule Logger.Translator do
257
257
defp crash_info ( min_level ,
258
258
[ { :ancestors , ancestors } | debug ] , prefix ) do
259
259
[ prefix , "Ancestors: " , inspect ( ancestors ) |
260
- crash_debug ( min_level , debug , prefix ) ]
260
+ crash_info ( min_level , debug , prefix ) ]
261
+ end
262
+
263
+ defp crash_info ( :debug , debug , prefix ) do
264
+ for { key , value } <- debug do
265
+ crash_debug ( key , value , prefix )
266
+ end
267
+ end
268
+
269
+ defp crash_info ( _ , _ , _ ) do
270
+ [ ]
261
271
end
262
272
263
273
defp crash_call ( mod , fun , arity ) when is_integer ( arity ) do
@@ -268,22 +278,28 @@ defmodule Logger.Translator do
268
278
format_mfa ( mod , fun , length ( args ) )
269
279
end
270
280
271
- defp crash_debug ( :debug ,
272
- [ messages: msgs , links: links , dictionary: dict ,
273
- trap_exit: trap , status: status , heap_size: heap_size ,
274
- stack_size: stack_size , reductions: reductions ] , prefix ) do
275
- [ prefix , "Messages: " , inspect ( msgs ) ,
276
- prefix , "Links: " , inspect ( links ) ,
277
- prefix , "Dictionary: " , inspect ( dict ) ,
278
- prefix , "Trapping Exits: " , inspect ( trap ) ,
279
- prefix , "Status: " , inspect ( status ) ,
280
- prefix , "Heap Size: " , inspect ( heap_size ) ,
281
- prefix , "Stack Size: " , inspect ( stack_size ) ,
282
- prefix , "Reductions: " , inspect ( reductions ) ]
281
+ defp crash_debug ( :current_stacktrace , stack , prefix ) do
282
+ stack_prefix = [ prefix | " " ]
283
+ [ prefix , "Current Stacktrace:" |
284
+ Enum . map ( stack , & [ stack_prefix | Exception . format_stacktrace_entry ( & 1 ) ] ) ]
283
285
end
284
286
285
- defp crash_debug ( _min_level , _info , _prefix ) do
286
- [ ]
287
+ defp crash_debug ( key , value , prefix ) do
288
+ [ prefix , crash_debug_key ( key ) , ?: , ?\s , inspect ( value ) ]
289
+ end
290
+
291
+ defp crash_debug_key ( key ) do
292
+ case key do
293
+ :message_queue_len -> "Message Queue Length"
294
+ :messages -> "Messages"
295
+ :links -> "Links"
296
+ :dictionary -> "Dictionary"
297
+ :trap_exit -> "Trapping Exits"
298
+ :status -> "Status"
299
+ :heap_size -> "Heap Size"
300
+ :stack_size -> "Stack Size"
301
+ :reductions -> "Reductions"
302
+ end
287
303
end
288
304
289
305
defp crash_linked ( _min_level , [ ] ) , do: [ ]
0 commit comments