From d63de35033014b56ef1b2e23f6de35739c3e7c86 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Fri, 10 Jan 2020 22:19:39 +0000 Subject: monkey-see-monkey-do: Decode backtraces To improve debugging, decode backtraces discovered during runs with monkey-see-monkey-do Signed-off-by: Daniel Silverstone --- test/monkey-see-monkey-do | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/test/monkey-see-monkey-do b/test/monkey-see-monkey-do index 1d6bb5294..584a70c0d 100755 --- a/test/monkey-see-monkey-do +++ b/test/monkey-see-monkey-do @@ -24,6 +24,20 @@ MONKEY_PATH = "./nsmonkey" mp.set_start_method('fork') +def decode_trace(s): + import re + from subprocess import getoutput + addr_re = re.compile(r"./nsmonkey\(\+(0x[0-9a-f]+)\)") + def decode_line(l): + caps = addr_re.findall(l); + if caps: + return getoutput( + "addar2line -e {} {} 2>/dev/null || echo './nsmonkey(+{})'".format( + MONKEY_PATH, caps[0], caps[0])) + else: + return l + return "\n".join(decode_line(l) for l in s.split("\n")) + def child_run_test(verbose, parts): outcapture = StringIO() errcapture = StringIO() @@ -38,7 +52,7 @@ def child_run_test(verbose, parts): sys.stderr = olderr print("FAIL:") print("STDOUT:\n{}\n".format(outcapture.getvalue())) - print("STDERR:\n{}\n".format(errcapture.getvalue())) + print("STDERR:\n{}\n".format(decode_trace(errcapture.getvalue()))) print("RERAISE:") raise else: -- cgit v1.2.3