From: Andreas Sandberg Date: Tue, 1 Dec 2015 13:01:05 +0000 (+0000) Subject: config: Fix broken SimObject listing X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c84745e2cb3637d23388659cfc31126e4b9e9501;p=gem5.git 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. --- diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index 26463f644..bb834fc0b 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -1227,6 +1227,9 @@ class SimObject(object): def path(self): if not self._parent: return '' % self.__class__ + elif isinstance(self._parent, MetaSimObject): + return str(self.__class__) + ppath = self._parent.path() if ppath == 'root': return self._name