diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2004-11-15 02:44:23 -0500 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2004-11-15 02:44:23 -0500 |
commit | c250a16e05b9176e8a2b50faa7a5a09f978ecd7e (patch) | |
tree | 637d5033560283adce87ff25303272e30681cc28 /base/loader/symtab.hh | |
parent | bd4f5f843d1b5f4f4255e0d53df73de353a5a2de (diff) | |
parent | fed64a3b3634315bce420b2bc63312c1fa62bb8f (diff) | |
download | gem5-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 'base/loader/symtab.hh')
-rw-r--r-- | base/loader/symtab.hh | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/base/loader/symtab.hh b/base/loader/symtab.hh index 48230c7a2..df3783991 100644 --- a/base/loader/symtab.hh +++ b/base/loader/symtab.hh @@ -49,7 +49,27 @@ class SymbolTable bool insert(Addr address, std::string symbol); bool load(const std::string &file); - bool findNearestSymbol(Addr address, std::string &symbol) const; + /// Find the nearest symbol equal to or less than the supplied + /// address (e.g., the label for the enclosing function). + /// @param address The address to look up. + /// @param symbol Return reference for symbol string. + /// @param sym_address Return reference for symbol address. + /// @param next_sym_address Address of following symbol (for + /// determining valid range of symbol). + /// @retval True if a symbol was found. + bool findNearestSymbol(Addr address, std::string &symbol, + Addr &sym_address, Addr &next_sym_address) const; + + /// Overload for findNearestSymbol() for callers who don't care + /// about next_sym_address. + bool findNearestSymbol(Addr address, std::string &symbol, + Addr &sym_address) const + { + Addr dummy; + return findNearestSymbol(address, symbol, sym_address, dummy); + } + + bool findSymbol(Addr address, std::string &symbol) const; bool findAddress(const std::string &symbol, Addr &address) const; @@ -57,4 +77,10 @@ class SymbolTable Addr find(const std::string &symbol) const; }; +/// Global unified debugging symbol table (for target). Conceptually +/// there should be one of these per System object for full system, +/// and per Process object for non-full-system, but so far one big +/// global one has worked well enough. +extern SymbolTable *debugSymbolTable; + #endif // __SYMTAB_HH__ |