diff --git a/src/base/loader/symtab.cc b/src/base/loader/symtab.cc index c2c53cc1e0..0d0e82615e 100644 --- a/src/base/loader/symtab.cc +++ b/src/base/loader/symtab.cc @@ -85,46 +85,6 @@ SymbolTable::insert(const SymbolTable &other) return true; } -bool -SymbolTable::load(const std::string &filename) -{ - std::string buffer; - std::ifstream file(filename.c_str()); - - if (!file) - fatal("file error: Can't open symbol table file %s\n", filename); - - while (!file.eof()) { - getline(file, buffer); - if (buffer.empty()) - continue; - - std::string::size_type idx = buffer.find(','); - if (idx == std::string::npos) - return false; - - std::string address = buffer.substr(0, idx); - eat_white(address); - if (address.empty()) - return false; - - std::string name = buffer.substr(idx + 1); - eat_white(name); - if (name.empty()) - return false; - - Addr addr; - if (!to_number(address, addr)) - return false; - - if (!insert({ Symbol::Binding::Global, name, addr })) - return false; - } - - file.close(); - return true; -} - void SymbolTable::serialize(const std::string &base, CheckpointOut &cp) const { diff --git a/src/base/loader/symtab.hh b/src/base/loader/symtab.hh index a0203a6929..561054492b 100644 --- a/src/base/loader/symtab.hh +++ b/src/base/loader/symtab.hh @@ -129,7 +129,6 @@ class SymbolTable // into this one. bool insert(const Symbol &symbol); bool insert(const SymbolTable &other); - bool load(const std::string &file); bool empty() const { return symbols.empty(); } SymbolTablePtr diff --git a/src/unittest/SConscript b/src/unittest/SConscript index 9ebe863eb1..50080665a4 100644 --- a/src/unittest/SConscript +++ b/src/unittest/SConscript @@ -32,5 +32,3 @@ UnitTest('nmtest', 'nmtest.cc') stattest_py = PySource('m5', 'stattestmain.py', tags='stattest') UnitTest('stattest', 'stattest.cc', with_tag('stattest'), main=True) - -UnitTest('symtest', 'symtest.cc') diff --git a/src/unittest/symtest.cc b/src/unittest/symtest.cc deleted file mode 100644 index 6de3c8d31e..0000000000 --- a/src/unittest/symtest.cc +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2002-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include - -#include "base/loader/symtab.hh" -#include "base/str.hh" - -void usage(const char *progname); - -void -usage(const char *progname) -{ - std::cout << "Usage: " << progname << " " - << std::endl; - - exit(1); -} - -int -main(int argc, char *argv[]) -{ - Loader::SymbolTable symtab; - - if (argc != 3) - usage(argv[0]); - - if (!symtab.load(argv[1])) { - std::cout << "could not load symbol file: " << argv[1] << std::endl; - exit(1); - } - - std::string symbol = argv[2]; - Addr address; - - if (!to_number(symbol, address)) { - auto it = symtab.find(symbol); - if (it == symtab.end()) { - std::cout << "could not find symbol: " << symbol << std::endl; - exit(1); - } - - std::cout << symbol << " -> " << "0x" << std::hex << it->address << - std::endl; - } else { - auto it = symtab.find(address); - if (it == symtab.end()) { - std::cout << "could not find address: " << address << std::endl; - exit(1); - } - - std::cout << "0x" << std::hex << address << " -> " << it->name << - std::endl; - } - - return 0; -}