X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=cpu%2Fexetrace.cc;h=ff7e90c9ec670e79bb0be5a2a63584f469de9e41;hb=92533214b611cad77de99576867e6ed765cd5765;hp=ce6b0c5442dda4d6e06f8ebf2b80bf6be5efca0d;hpb=40b9a3878aed4e2400727ca87e1c9976cdecef58;p=gem5.git diff --git a/cpu/exetrace.cc b/cpu/exetrace.cc index ce6b0c544..ff7e90c9e 100644 --- a/cpu/exetrace.cc +++ b/cpu/exetrace.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003 The Regents of The University of Michigan + * Copyright (c) 2001-2004 The Regents of The University of Michigan * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -48,11 +48,10 @@ using namespace std; // -const SymbolTable *debugSymbolTable = NULL; - void Trace::InstRecord::dump(ostream &outs) { + if (flags[PRINT_CYCLE]) ccprintf(outs, "%7d: ", cycle); @@ -64,7 +63,18 @@ Trace::InstRecord::dump(ostream &outs) if (flags[PRINT_THREAD_NUM]) outs << "T" << thread << " : "; - outs << "0x" << hex << PC << " : "; + + std::string sym_str; + Addr sym_addr; + if (debugSymbolTable + && debugSymbolTable->findNearestSymbol(PC, sym_str, sym_addr)) { + if (PC != sym_addr) + sym_str += csprintf("+%d", PC - sym_addr); + outs << "@" << sym_str << " : "; + } + else { + outs << "0x" << hex << PC << " : "; + } // // Print decoded instruction @@ -120,7 +130,6 @@ Trace::InstRecord::dump(ostream &outs) // End of line... // outs << endl; - outs.flush(); }