diff options
-rw-r--r-- | bitbake/lib/bb/utils.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 9d7a32fb25..462eb689b9 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -255,18 +255,20 @@ def better_compile(text, file, realfile, mode = "exec"): | |||
255 | try: | 255 | try: |
256 | return compile(text, file, mode) | 256 | return compile(text, file, mode) |
257 | except Exception as e: | 257 | except Exception as e: |
258 | error = [] | ||
258 | # split the text into lines again | 259 | # split the text into lines again |
259 | body = text.split('\n') | 260 | body = text.split('\n') |
260 | logger.error("Error in compiling python function in %s", realfile) | 261 | error.append("Error in compiling python function in %s:\n" % realfile) |
261 | logger.error(str(e)) | ||
262 | if e.lineno: | 262 | if e.lineno: |
263 | logger.error("The lines leading to this error were:") | 263 | error.append("The code lines resulting in this error were:") |
264 | logger.error("\t%d:%s:'%s'", e.lineno, e.__class__.__name__, body[e.lineno-1]) | 264 | error.extend(_print_trace(body, e.lineno)) |
265 | logger.error("\n".join(_print_trace(body, e.lineno))) | ||
266 | else: | 265 | else: |
267 | logger.error("The function causing this error was:") | 266 | error.append("The function causing this error was:") |
268 | for line in body: | 267 | for line in body: |
269 | logger.error(line) | 268 | error.append(line) |
269 | error.append("%s: %s" % (e.__class__.__name__, str(e))) | ||
270 | |||
271 | logger.error("\n".join(error)) | ||
270 | 272 | ||
271 | e = bb.BBHandledException(e) | 273 | e = bb.BBHandledException(e) |
272 | raise e | 274 | raise e |