summaryrefslogtreecommitdiff
path: root/src/sim/process.cc
diff options
context:
space:
mode:
authorDeyuan Guo ext:(%2C%20Nilay%20Vaish%20%3Cnilay%40cs.wisc.edu%3E) <guodeyuan@tsinghua.org.cn>2013-04-17 16:07:19 -0500
committerDeyuan Guo ext:(%2C%20Nilay%20Vaish%20%3Cnilay%40cs.wisc.edu%3E) <guodeyuan@tsinghua.org.cn>2013-04-17 16:07:19 -0500
commitb54e11862878cf88a427fa225407d1128abd21f2 (patch)
tree66f09330565822fd9123de93feebd3718a7fbd69 /src/sim/process.cc
parent3ff091bdf401113057c26cf1087cf0e872154265 (diff)
downloadgem5-b54e11862878cf88a427fa225407d1128abd21f2.tar.xz
base: load weak symbols from object file
Without loading weak symbols into gem5, some function names and the given PC cannot correspond correctly, because the binding attributes of unction names in an ELF file are not only STB_GLOBAL or STB_LOCAL, but also STB_WEAK. This patch adds a function for loading weak symbols. Committed by: Nilay Vaish <nilay@cs.wisc.edu>
Diffstat (limited to 'src/sim/process.cc')
-rw-r--r--src/sim/process.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc
index 22a886303..1654ea5c5 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -574,7 +574,8 @@ LiveProcess::LiveProcess(LiveProcessParams * params, ObjectFile *_objFile)
if (!debugSymbolTable) {
debugSymbolTable = new SymbolTable();
if (!objFile->loadGlobalSymbols(debugSymbolTable) ||
- !objFile->loadLocalSymbols(debugSymbolTable)) {
+ !objFile->loadLocalSymbols(debugSymbolTable) ||
+ !objFile->loadWeakSymbols(debugSymbolTable)) {
// didn't load any symbols
delete debugSymbolTable;
debugSymbolTable = NULL;