config: Fix broken SimObject listing

The gem5 option '--list-sim-objects' is supposed to list all available
SimObjects and their parameters. It currently chokes on SimObjects
with parameters that have an object instance as their default
value. This is caused by __str__ in SimObject trying to resolve its
complete path. When the path resolution method reaches the parent
object (a MetaSimObject since it hasn't been instantiated), it dies
with a Python exception.

This changeset adds a guard to stop path resolution if the parent
object is a MetaSimObject.
This commit is contained in:
Andreas Sandberg 2015-12-01 13:01:05 +00:00
parent d7e3d94c14
commit c84745e2cb

View file

@ -1227,6 +1227,9 @@ class SimObject(object):
def path(self):
if not self._parent:
return '<orphan %s>' % self.__class__
elif isinstance(self._parent, MetaSimObject):
return str(self.__class__)
ppath = self._parent.path()
if ppath == 'root':
return self._name