From 9b4bc0189beac487daf7f3e307f953270bc14049 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Sat, 23 Nov 2019 13:22:55 +0200 Subject: [PATCH] backtraces: cleaner looking backtrace output on linux --- vlib/builtin/builtin_nix.v | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vlib/builtin/builtin_nix.v b/vlib/builtin/builtin_nix.v index cb7c6b1353..1a4e275284 100644 --- a/vlib/builtin/builtin_nix.v +++ b/vlib/builtin/builtin_nix.v @@ -50,6 +50,7 @@ fn print_backtrace_skipping_top_frames_linux(skipframes int) bool { for sframe in sframes { executable := sframe.all_before('(') addr := sframe.all_after('[').all_before(']') + beforeaddr := sframe.all_before('[') cmd := 'addr2line -e $executable $addr' // taken from os, to avoid depending on the os module inside builtin.v @@ -66,7 +67,8 @@ fn print_backtrace_skipping_top_frames_linux(skipframes int) bool { if 0 != int(C.pclose(f)) { println(sframe) continue } - println( '${output:-45s} | $sframe') + if output in ['??:0:','??:?:'] { output = '' } + println( '${output:-46s} | ${addr:14s} | $beforeaddr') } //C.backtrace_symbols_fd(*voidptr(&buffer[skipframes]), nr_actual_frames, 1) return true