From ac3452c4316dce4b8d2620214087ab110c4573f6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 20 Aug 2010 12:52:33 +0100 Subject: bitbake/utils.py: Improve better_exec debug output Signed-off-by: Richard Purdie --- bitbake/lib/bb/utils.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 1778a1e2ee..fd7948f1de 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -292,7 +292,6 @@ def _print_trace(body, line): Print the Environment of a Text Body """ # print the environment of the method - bb.msg.error(bb.msg.domain.Util, "Printing the environment of the function") min_line = max(1, line-4) max_line = min(line + 4, len(body)-1) for i in range(min_line, max_line + 1): @@ -340,13 +339,18 @@ def better_exec(code, context, text, realfile): bb.msg.error(bb.msg.domain.Util, "Error in executing python function in: %s" % realfile) bb.msg.error(bb.msg.domain.Util, "Exception:%s Message:%s" % (t, value)) - # let us find the line number now - while tb.tb_next: - tb = tb.tb_next + # Strip 'us' from the stack (better_exec call) + tb = tb.tb_next import traceback - line = traceback.tb_lineno(tb) + tbextract = traceback.extract_tb(tb) + tbextract = "\n".join(traceback.format_list(tbextract)) + bb.msg.error(bb.msg.domain.Util, "Traceback:") + for line in tbextract.split('\n'): + bb.msg.error(bb.msg.domain.Util, line) + line = traceback.tb_lineno(tb) + bb.msg.error(bb.msg.domain.Util, "The lines leading to this error were:") _print_trace( text.split('\n'), line ) raise -- cgit v1.2.3