Make the DDUMP tracing feature output the cycle number and
authorNathan Binkert <binkertn@umich.edu>
Fri, 30 Jul 2004 14:18:04 +0000 (10:18 -0400)
committerNathan Binkert <binkertn@umich.edu>
Fri, 30 Jul 2004 14:18:04 +0000 (10:18 -0400)
the object name on every line.
This makes grep a bit more effective.

kern/tru64/dump_mbuf.cc:
    use the new data dump format that trace.hh now provides

--HG--
extra : convert_revision : 179efa96aaff9da710baae13c9e981975d2abdc1

base/trace.cc
base/trace.hh
kern/tru64/dump_mbuf.cc

index aa82ee40350e287c952339922d1906a7c17f0add..d924b9a4bda8747fcbdac967dbfb601f41d1891a 100644 (file)
@@ -184,7 +184,6 @@ PrintfRecord::~PrintfRecord()
     delete &args;
 }
 
-
 void
 PrintfRecord::dump(ostream &os)
 {
@@ -206,29 +205,26 @@ PrintfRecord::dump(ostream &os)
     os.flush();
 }
 
-
-
-RawDataRecord::RawDataRecord(Tick _cycle, const void *_data, int _len)
-    : Record(_cycle), len(_len)
+DataRecord::DataRecord(Tick _cycle, const string &_name,
+                       const void *_data, int _len)
+    : Record(_cycle), name(_name), len(_len)
 {
     data = new uint8_t[len];
     memcpy(data, _data, len);
 }
 
-
-RawDataRecord::~RawDataRecord()
+DataRecord::~DataRecord()
 {
     delete [] data;
 }
 
-
 void
-RawDataRecord::dump(ostream &os)
+DataRecord::dump(ostream &os)
 {
     int c, i, j;
 
     for (i = 0; i < len; i += 16) {
-        ccprintf(os, "%08x  ", i);
+        ccprintf(os, "%d: %s: %08x  ", cycle, name, i);
         c = len - i;
         if (c > 16) c = 16;
 
index 60ea015ea5aaa0f8e7e1bfab93e94f489bb949ad..b363bec9464761f3275b985a1a2f8456941d8d15 100644 (file)
@@ -69,7 +69,7 @@ namespace Trace {
     class Record
     {
       protected:
-        Tick   cycle;
+        Tick cycle;
 
         Record(Tick _cycle)
             : cycle(_cycle)
@@ -101,15 +101,17 @@ namespace Trace {
         virtual void dump(std::ostream &);
     };
 
-    class RawDataRecord : public Record
+    class DataRecord : public Record
     {
       private:
+        const std::string &name;
         uint8_t *data;
         int len;
 
       public:
-        RawDataRecord(Tick cycle, const void *_data, int _len);
-        virtual ~RawDataRecord();
+        DataRecord(Tick cycle, const std::string &name,
+                   const void *_data, int _len);
+        virtual ~DataRecord();
 
         virtual void dump(std::ostream &);
     };
@@ -149,9 +151,9 @@ namespace Trace {
     }
 
     inline void
-    rawDump(const void *data, int len)
+    dataDump(Tick cycle, const std::string &name, const void *data, int len)
     {
-        theLog.append(new Trace::RawDataRecord(curTick, data, len));
+        theLog.append(new Trace::DataRecord(cycle, name, data, len));
     }
 
     extern const std::string DefaultName;
@@ -180,7 +182,7 @@ std::ostream &DebugOut();
 #define DDUMP(x, data, count) \
 do { \
     if (Trace::IsOn(Trace::x)) \
-        Trace::rawDump(data, count); \
+        Trace::dataDump(curTick, name(), data, count); \
 } while (0)
 
 #define __dprintf(cycle, name, format, args...) \
index 9121e823d975e9f72da103ebec0cd0af7739a8dc..5dd8e64c3aa7e2b32a3805c48f8991132724b1e9 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "base/cprintf.hh"
 #include "base/trace.hh"
+#include "cpu/exec_context.hh"
 #include "kern/tru64/mbuf.hh"
 #include "sim/host.hh"
 #include "targetarch/arguments.hh"
@@ -58,7 +59,8 @@ DumpMbuf(AlphaArguments args)
                  addr, m.m_data, m.m_len);
         char *buffer = new char[m.m_len];
         CopyOut(xc, buffer, m.m_data, m.m_len);
-        Trace::rawDump((uint8_t *)buffer, m.m_len);
+        Trace::dataDump(curTick, xc->system->name(), (uint8_t *)buffer,
+                        m.m_len);
         delete [] buffer;
 
         count -= m.m_len;