changeset 5a9a639ce16f in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=5a9a639ce16f
description:
        debug: fix help output

diffstat:

 src/base/debug.cc      |   4 ++--
 src/base/debug.hh      |  16 ++++++++--------
 src/python/m5/debug.py |  28 ++++++++++++++++++++--------
 3 files changed, 30 insertions(+), 18 deletions(-)

diffs (115 lines):

diff -r 3f49ed206f46 -r 5a9a639ce16f src/base/debug.cc
--- a/src/base/debug.cc Mon May 02 12:40:32 2011 -0700
+++ b/src/base/debug.cc Wed May 04 10:08:08 2011 -0400
@@ -101,14 +101,14 @@
 CompoundFlag::enable()
 {
     SimpleFlag::enable();
-    for_each(flags.begin(), flags.end(), mem_fun(&Flag::enable));
+    for_each(_kids.begin(), _kids.end(), mem_fun(&Flag::enable));
 }
 
 void
 CompoundFlag::disable()
 {
     SimpleFlag::disable();
-    for_each(flags.begin(), flags.end(), mem_fun(&Flag::disable));
+    for_each(_kids.begin(), _kids.end(), mem_fun(&Flag::disable));
 }
 
 struct AllFlags : public Flag
diff -r 3f49ed206f46 -r 5a9a639ce16f src/base/debug.hh
--- a/src/base/debug.hh Mon May 02 12:40:32 2011 -0700
+++ b/src/base/debug.hh Wed May 04 10:08:08 2011 -0400
@@ -44,6 +44,7 @@
   protected:
     const char *_name;
     const char *_desc;
+    std::vector<Flag *> _kids;
 
   public:
     Flag(const char *name, const char *desc);
@@ -51,6 +52,7 @@
 
     std::string name() const { return _name; }
     std::string desc() const { return _desc; }
+    std::vector<Flag *> kids() { return _kids; }
 
     virtual void enable() = 0;
     virtual void disable() = 0;
@@ -77,7 +79,12 @@
 class CompoundFlag : public SimpleFlag
 {
   protected:
-    std::vector<Flag *> flags;
+    void
+    addFlag(Flag &f)
+    {
+        if (&f != NULL)
+            _kids.push_back(&f);
+    }
 
   public:
     CompoundFlag(const char *name, const char *desc,
@@ -99,13 +106,6 @@
         addFlag(f15); addFlag(f16); addFlag(f17); addFlag(f18); addFlag(f19);
     }
 
-    void
-    addFlag(Flag &f)
-    {
-        if (&f != NULL)
-            flags.push_back(&f);
-    }
-
     void enable();
     void disable();
 };
diff -r 3f49ed206f46 -r 5a9a639ce16f src/python/m5/debug.py
--- a/src/python/m5/debug.py    Mon May 02 12:40:32 2011 -0700
+++ b/src/python/m5/debug.py    Wed May 04 10:08:08 2011 -0400
@@ -26,24 +26,36 @@
 #
 # Authors: Nathan Binkert
 
+from UserDict import DictMixin
+
 import internal
 
+from internal.debug import SimpleFlag, CompoundFlag
 from internal.debug import schedBreakCycle, setRemoteGDBPort
+from m5.util import printList
 
 def help():
     print "Base Flags:"
-    for flag in flags.basic:
-        print "    %s: %s" % (flag, flags.descriptions[flag])
+    for name in sorted(flags):
+        if name == 'All':
+            continue
+        flag = flags[name]
+        children = [c for c in flag.kids() ]
+        if not children:
+            print "    %s: %s" % (name, flag.desc())
     print
     print "Compound Flags:"
-    for flag in flags.compound:
-        if flag == 'All':
+    for name in sorted(flags):
+        if name == 'All':
             continue
-        print "    %s: %s" % (flag, flags.descriptions[flag])
-        util.printList(flags.compoundMap[flag], indent=8)
-        print
+        flag = flags[name]
+        children = [c for c in flag.kids() ]
+        if children:
+            print "    %s: %s" % (name, flag.desc())
+            printList([ c.name() for c in children ], indent=8)
+    print
 
-class AllFlags(object):
+class AllFlags(DictMixin):
     def __init__(self):
         self._version = -1
         self._dict = {}
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to