From 3952e41ab1f1dfaa2f97a6a486528e4ea0bfc5a1 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Wed, 2 Jan 2008 12:20:15 -0800 Subject: Add functional PrintReq command for memory-system debugging. --HG-- extra : convert_revision : 73b753e57c355b7e6873f047ddc8cb371c3136b7 --- src/sim/sim_object.cc | 16 ++++++++++++++++ src/sim/sim_object.hh | 7 +++++++ 2 files changed, 23 insertions(+) (limited to 'src/sim') diff --git a/src/sim/sim_object.cc b/src/sim/sim_object.cc index 907f015dc..a835aee5b 100644 --- a/src/sim/sim_object.cc +++ b/src/sim/sim_object.cc @@ -264,3 +264,19 @@ SimObject::takeOverFrom(BaseCPU *cpu) { panic("Unimplemented!"); } + + +SimObject * +SimObject::find(const char *name) +{ + SimObjectList::const_iterator i = simObjectList.begin(); + SimObjectList::const_iterator end = simObjectList.end(); + + for (; i != end; ++i) { + SimObject *obj = *i; + if (obj->name() == name) + return obj; + } + + return NULL; +} diff --git a/src/sim/sim_object.hh b/src/sim/sim_object.hh index b70f1d5d3..20a35a32b 100644 --- a/src/sim/sim_object.hh +++ b/src/sim/sim_object.hh @@ -131,6 +131,13 @@ class SimObject : public Serializable, protected StartupCallback static void debugObjectBreak(const std::string &objs); #endif + /** + * Find the SimObject with the given name and return a pointer to + * it. Priarily used for interactive debugging. Argument is + * char* rather than std::string to make it callable from gdb. + */ + static SimObject *find(const char *name); + public: void recordEvent(const std::string &stat); }; -- cgit v1.2.3