summaryrefslogtreecommitdiff
path: root/cpu/exetrace.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2004-11-15 02:44:23 -0500
committerSteve Reinhardt <stever@eecs.umich.edu>2004-11-15 02:44:23 -0500
commitc250a16e05b9176e8a2b50faa7a5a09f978ecd7e (patch)
tree637d5033560283adce87ff25303272e30681cc28 /cpu/exetrace.cc
parentbd4f5f843d1b5f4f4255e0d53df73de353a5a2de (diff)
parentfed64a3b3634315bce420b2bc63312c1fa62bb8f (diff)
downloadgem5-c250a16e05b9176e8a2b50faa7a5a09f978ecd7e.tar.xz
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/z/stever/bk/m5 --HG-- extra : convert_revision : 033375b63b56104a5c1823985eeee7bb6cdcc7de
Diffstat (limited to 'cpu/exetrace.cc')
-rw-r--r--cpu/exetrace.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/cpu/exetrace.cc b/cpu/exetrace.cc
index e31c3590c..58fb7d668 100644
--- a/cpu/exetrace.cc
+++ b/cpu/exetrace.cc
@@ -48,8 +48,6 @@ using namespace std;
//
-SymbolTable *debugSymbolTable = NULL;
-
void
Trace::InstRecord::dump(ostream &outs)
{
@@ -66,11 +64,17 @@ Trace::InstRecord::dump(ostream &outs)
outs << "T" << thread << " : ";
- std::string str;
- if ((debugSymbolTable) && (debugSymbolTable->findNearestSymbol(PC, str)))
- outs << "@" << setw(17) << str << " : ";
- else
+ std::string sym_str;
+ Addr sym_addr;
+ if (debugSymbolTable
+ && debugSymbolTable->findNearestSymbol(PC, sym_str, sym_addr)) {
+ if (PC != sym_addr)
+ sym_str += csprintf("+%d", addr - sym_addr);
+ outs << "@" << setw(17) << sym_str << " : ";
+ }
+ else {
outs << "0x" << hex << PC << " : ";
+ }
//
// Print decoded instruction