Added code to print out the symbol if one exists for an address
authorAli Saidi <saidi@eecs.umich.edu>
Tue, 13 Jan 2004 00:59:02 +0000 (19:59 -0500)
committerAli Saidi <saidi@eecs.umich.edu>
Tue, 13 Jan 2004 00:59:02 +0000 (19:59 -0500)
cpu/exetrace.cc:
    added code to print out symbol if one is found for address
kern/linux/linux_system.cc:
    added code to set the debugSymbolTable to the kernel symbol table

--HG--
extra : convert_revision : 191d7608d04fa42baef5e618c0bbbf5ad4001031

cpu/exetrace.cc
kern/linux/linux_system.cc

index 3e8877e933db062f75d31a6bb5cb4fe99ecdc4ab..a7224223228d4d62a93cd3ad6a410bdaf2a3ab0d 100644 (file)
@@ -48,11 +48,12 @@ using namespace std;
 //
 
 
-const SymbolTable *debugSymbolTable = NULL;
+SymbolTable *debugSymbolTable = NULL;
 
 void
 Trace::InstRecord::dump(ostream &outs)
 {
+
     if (flags[PRINT_CYCLE])
         ccprintf(outs, "%7d: ", cycle);
 
@@ -64,7 +65,12 @@ Trace::InstRecord::dump(ostream &outs)
     if (flags[PRINT_THREAD_NUM])
         outs << "T" << thread << " : ";
 
-    outs << "0x" << hex << PC << " : ";
+
+    std::string str;
+    if(debugSymbolTable->findSymbol(data.as_int, str))
+        outs << "@" << setw(17) << str << " : ";
+    else
+        outs << "0x" << hex << PC << " : ";
 
     //
     //  Print decoded instruction
index bdaebbe70cc16b450d1f212c0c0377723123338a..fe655ad74289f382e11ae7e91fa7b9f885bd8c26 100644 (file)
@@ -41,6 +41,8 @@
 #include "targetarch/isa_traits.hh"
 #include "targetarch/vtophys.hh"
 
+extern SymbolTable *debugSymbolTable;
+
 //un-comment this to see the state of call stack when it changes.
 //#define SW_DEBUG
 
@@ -71,6 +73,7 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
 
     if (!kernel->loadGlobalSymbols(kernelSymtab))
         panic("could not load kernel symbols\n");
+    debugSymbolTable = kernelSymtab;
 
     if (!console->loadGlobalSymbols(consoleSymtab))
         panic("could not load console symbols\n");