From c84745e2cb3637d23388659cfc31126e4b9e9501 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Tue, 1 Dec 2015 13:01:05 +0000 Subject: [PATCH] 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. --- src/python/m5/SimObject.py | 3 +++ 1 file changed, 3 insertions(+) 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