From 41988a86b56984e19e9ef45991a39c00fdb3f21e Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Fri, 30 Jul 2004 10:18:04 -0400 Subject: 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 --- base/trace.cc | 16 ++++++---------- base/trace.hh | 16 +++++++++------- kern/tru64/dump_mbuf.cc | 4 +++- 3 files changed, 18 insertions(+), 18 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...) \ diff --git a/kern/tru64/dump_mbuf.cc b/kern/tru64/dump_mbuf.cc index 9121e823d..5dd8e64c3 100644 --- a/kern/tru64/dump_mbuf.cc +++ b/kern/tru64/dump_mbuf.cc @@ -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; -- cgit v1.2.3