summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-08-21 16:25:07 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-08-22 12:59:57 (GMT)
commit21773a997a2a8ece3b9549c5940468c5a889ac40 (patch)
treec5de5f77369519968552d4dbf7cc2f4e51a91f75 /bitbake
parent1a7069e97b9ec208dc3cb70f9465b65de7e0a6f9 (diff)
downloadpoky-21773a997a2a8ece3b9549c5940468c5a889ac40.tar.gz
bitbake: event/ast: Use better_exec instead of simple_exec
This improves the stacktraces dumped by bitbake when for example anonymous python functions fail. Also default to passing code strings to better_exec to match the behaviour of simple_exec to aid the transition. (Bitbake rev: 7e8205929ae953731a6854ea80b197847cff5771) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/event.py2
-rw-r--r--bitbake/lib/bb/parse/ast.py2
-rw-r--r--bitbake/lib/bb/utils.py4
3 files changed, 5 insertions, 3 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index 20923b5..fa179d8 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -175,7 +175,7 @@ def register(name, handler):
175 _handlers[name] = noop 175 _handlers[name] = noop
176 return 176 return
177 env = {} 177 env = {}
178 bb.utils.simple_exec(code, env) 178 bb.utils.better_exec(code, env)
179 func = bb.utils.better_eval(name, env) 179 func = bb.utils.better_eval(name, env)
180 _handlers[name] = func 180 _handlers[name] = func
181 else: 181 else:
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
index 86f9463..b88d5f5 100644
--- a/bitbake/lib/bb/parse/ast.py
+++ b/bitbake/lib/bb/parse/ast.py
@@ -320,7 +320,7 @@ def finalize(fn, d, variant = None):
320 code = [] 320 code = []
321 for funcname in d.getVar("__BBANONFUNCS") or []: 321 for funcname in d.getVar("__BBANONFUNCS") or []:
322 code.append("%s(d)" % funcname) 322 code.append("%s(d)" % funcname)
323 bb.utils.simple_exec("\n".join(code), {"d": d}) 323 bb.utils.better_exec("\n".join(code), {"d": d})
324 bb.data.update_data(d) 324 bb.data.update_data(d)
325 325
326 tasklist = d.getVar('__BBTASKS') or [] 326 tasklist = d.getVar('__BBTASKS') or []
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index ee4ef73..44a42a0 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -218,13 +218,15 @@ def better_compile(text, file, realfile, mode = "exec"):
218 218
219 raise 219 raise
220 220
221def better_exec(code, context, text, realfile = "<code>"): 221def better_exec(code, context, text = None, realfile = "<code>", data = None):
222 """ 222 """
223 Similiar to better_compile, better_exec will 223 Similiar to better_compile, better_exec will
224 print the lines that are responsible for the 224 print the lines that are responsible for the
225 error. 225 error.
226 """ 226 """
227 import bb.parse 227 import bb.parse
228 if not text:
229 text = code
228 if not hasattr(code, "co_filename"): 230 if not hasattr(code, "co_filename"):
229 code = better_compile(code, realfile, realfile) 231 code = better_compile(code, realfile, realfile)
230 try: 232 try: