]> code.ossystems Code Review - openembedded-core.git/commitdiff
bitbake/utils.py: Improve better_exec debug output
authorRichard Purdie <rpurdie@linux.intel.com>
Fri, 20 Aug 2010 11:52:33 +0000 (12:52 +0100)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 20 Aug 2010 11:52:43 +0000 (12:52 +0100)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/utils.py

index 1778a1e2ee3b277d855a0177a808feeb050e6da9..fd7948f1de3b27e9e62f0f33d7c4d69bd3e4b83a 100644 (file)
@@ -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