diff options
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 65528c6ae6..515d195fe8 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
@@ -151,6 +151,7 @@ class ExpansionError(Exception): | |||
151 | self.expression = expression | 151 | self.expression = expression |
152 | self.variablename = varname | 152 | self.variablename = varname |
153 | self.exception = exception | 153 | self.exception = exception |
154 | self.varlist = [varname or expression] | ||
154 | if varname: | 155 | if varname: |
155 | if expression: | 156 | if expression: |
156 | self.msg = "Failure expanding variable %s, expression was %s which triggered exception %s: %s" % (varname, expression, type(exception).__name__, exception) | 157 | self.msg = "Failure expanding variable %s, expression was %s which triggered exception %s: %s" % (varname, expression, type(exception).__name__, exception) |
@@ -160,8 +161,13 @@ class ExpansionError(Exception): | |||
160 | self.msg = "Failure expanding expression %s which triggered exception %s: %s" % (expression, type(exception).__name__, exception) | 161 | self.msg = "Failure expanding expression %s which triggered exception %s: %s" % (expression, type(exception).__name__, exception) |
161 | Exception.__init__(self, self.msg) | 162 | Exception.__init__(self, self.msg) |
162 | self.args = (varname, expression, exception) | 163 | self.args = (varname, expression, exception) |
164 | |||
165 | def addVar(self, varname): | ||
166 | self.varlist.append(varname) | ||
167 | |||
163 | def __str__(self): | 168 | def __str__(self): |
164 | return self.msg | 169 | chain = "\nThe variable dependency chain for the failure is: " + " -> ".join(self.varlist) |
170 | return self.msg + chain | ||
165 | 171 | ||
166 | class IncludeHistory(object): | 172 | class IncludeHistory(object): |
167 | def __init__(self, parent = None, filename = '[TOP LEVEL]'): | 173 | def __init__(self, parent = None, filename = '[TOP LEVEL]'): |
@@ -407,7 +413,8 @@ class DataSmart(MutableMapping): | |||
407 | raise | 413 | raise |
408 | if s == olds: | 414 | if s == olds: |
409 | break | 415 | break |
410 | except ExpansionError: | 416 | except ExpansionError as e: |
417 | e.addVar(varname) | ||
411 | raise | 418 | raise |
412 | except bb.parse.SkipRecipe: | 419 | except bb.parse.SkipRecipe: |
413 | raise | 420 | raise |