[oe-commits] [bitbake] 02/07: utils: better_compile(): Fix line number when report errors

git at git.openembedded.org git at git.openembedded.org
Fri Nov 16 14:03:07 UTC 2018


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

commit bbb3d87d171da38fd8e9bce011d109fba28a75c0
Author: Robert Yang <liezhi.yang at windriver.com>
AuthorDate: Wed Nov 14 17:46:36 2018 +0800

    utils: better_compile(): Fix line number when report errors
    
    Fixed:
    - Add an error line in base.bbclass, e.g.:
      15
      16 def oe_import(d):
      17     import sys
      18     Compile error
      19     bbpath = d.getVar("BBPATH").split(":")
      [snip]
    
      Note the "Compile error" line, I added it for reporting errors.
    
      $ bitbake -p
      ERROR: Error in compiling python function in /buildarea1/lyang1/poky/meta/classes/base.bbclass, line 15:
    
      The code lines resulting in this error were:
           0014:    import oe.data
           0015:    for toimport in oe.data.typed_value("OE_IMPORTS", d):
           0016:        imported = __import__(toimport)
           0017:        inject(toimport.split(".", 1)[0], imported)
       *** 0018:
           0019:    return ""
           0020:
      SyntaxError: invalid syntax (base.bbclass, line 18)
    
      There are 2 problems:
      - The "line 15" is incorrect, it is a blank line, not the error line.
      - The "*** 0018" points to incorrect position.
    
      These two problems would mislead people a lot sometimes.
    
    - Now fix it to:
      $ bitbake -p
      ERROR: Error in compiling python function in /buildarea1/lyang1/poky/meta/classes/base.bbclass, line 18:
    
      The code lines resulting in this error were:
           0001:def oe_import(d):
           0002:    import sys
       *** 0003:    Compile error
           0004:    bbpath = d.getVar("BBPATH").split(":")
                    [snip]
      SyntaxError: invalid syntax (base.bbclass, line 18)
    
    Please see comments in the code for more details on how it is fixed.
    
    Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/utils.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index 3b0c959..13bb5f2 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -318,10 +318,13 @@ def better_compile(text, file, realfile, mode = "exec", lineno = 0):
         error = []
         # split the text into lines again
         body = text.split('\n')
-        error.append("Error in compiling python function in %s, line %s:\n" % (realfile, lineno))
+        error.append("Error in compiling python function in %s, line %s:\n" % (realfile, e.lineno))
         if hasattr(e, "lineno"):
             error.append("The code lines resulting in this error were:")
-            error.extend(_print_trace(body, e.lineno))
+            # e.lineno: line's position in reaflile
+            # lineno: function name's "position -1" in realfile
+            # e.lineno - lineno: line's relative position in function
+            error.extend(_print_trace(body, e.lineno - lineno))
         else:
             error.append("The function causing this error was:")
             for line in body:

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list