diff options
-rw-r--r-- | bitbake/lib/bb/cookerdata.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index b20040c0b3..f19c283884 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py | |||
@@ -180,7 +180,16 @@ def catch_parse_error(func): | |||
180 | parselog.critical("Unable to parse %s: %s" % (fn, exc)) | 180 | parselog.critical("Unable to parse %s: %s" % (fn, exc)) |
181 | sys.exit(1) | 181 | sys.exit(1) |
182 | except (bb.parse.ParseError, bb.data_smart.ExpansionError) as exc: | 182 | except (bb.parse.ParseError, bb.data_smart.ExpansionError) as exc: |
183 | parselog.critical("Unable to parse %s: %s" % (fn, exc)) | 183 | import traceback |
184 | |||
185 | bbdir = os.path.dirname(__file__) + os.sep | ||
186 | exc_class, exc, tb = sys.exc_info() | ||
187 | for tb in iter(lambda: tb.tb_next, None): | ||
188 | # Skip frames in bitbake itself, we only want the metadata | ||
189 | fn, _, _, _ = traceback.extract_tb(tb, 1)[0] | ||
190 | if not fn.startswith(bbdir): | ||
191 | break | ||
192 | parselog.critical("Unable to parse %s", fn, exc_info=(exc_class, exc, tb)) | ||
184 | sys.exit(1) | 193 | sys.exit(1) |
185 | return wrapped | 194 | return wrapped |
186 | 195 | ||