summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2004-07-30 10:18:04 -0400
committerNathan Binkert <binkertn@umich.edu>2004-07-30 10:18:04 -0400
commit41988a86b56984e19e9ef45991a39c00fdb3f21e (patch)
treebdbf0abd4c0898cbfaae887c9b9fcb27f2677ccf /base
parentb1fa4e9f0a687f8005ab0ba3cbfb5f4e6fb0172f (diff)
downloadgem5-41988a86b56984e19e9ef45991a39c00fdb3f21e.tar.xz
Make the DDUMP tracing feature output the cycle number and
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
Diffstat (limited to 'base')
-rw-r--r--base/trace.cc16
-rw-r--r--base/trace.hh16
2 files changed, 15 insertions, 17 deletions
diff --git a/base/trace.cc b/base/trace.cc
index aa82ee403..d924b9a4b 100644
--- a/base/trace.cc
+++ b/base/trace.cc
@@ -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;
diff --git a/base/trace.hh b/base/trace.hh
index 60ea015ea..b363bec94 100644
--- a/base/trace.hh
+++ b/base/trace.hh
@@ -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...) \