diff options
author | Sean Callanan <scallanan@apple.com> | 2012-02-28 17:55:31 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2012-02-28 17:55:31 +0000 |
commit | 378ecbe6f476012e58b270ab6dffa04687944628 (patch) | |
tree | 9b5b3955532a760048a5611d4c4cc89faa601420 /lldb/source/Expression/ClangExpressionDeclMap.cpp | |
parent | 346088067452f37a1c1d12a37698f53068e936b5 (diff) | |
download | bcm5719-llvm-378ecbe6f476012e58b270ab6dffa04687944628.tar.gz bcm5719-llvm-378ecbe6f476012e58b270ab6dffa04687944628.zip |
Extended the IR interpreter to support symbols
that have valid load addresses.
llvm-svn: 151636
Diffstat (limited to 'lldb/source/Expression/ClangExpressionDeclMap.cpp')
-rw-r--r-- | lldb/source/Expression/ClangExpressionDeclMap.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lldb/source/Expression/ClangExpressionDeclMap.cpp b/lldb/source/Expression/ClangExpressionDeclMap.cpp index 02c93cb18f3..971a3f6416e 100644 --- a/lldb/source/Expression/ClangExpressionDeclMap.cpp +++ b/lldb/source/Expression/ClangExpressionDeclMap.cpp @@ -1043,10 +1043,22 @@ ClangExpressionDeclMap::LookupDecl (clang::NamedDecl *decl, ClangExpressionVaria Value ret; - uint64_t symbol_addr = sym_address.GetFileAddress(); - - ret.GetScalar() = symbol_addr; - ret.SetValueType(Value::eValueTypeFileAddress); + ProcessSP process_sp (m_parser_vars->m_exe_ctx.GetProcessSP()); + + if (process_sp) + { + uint64_t symbol_load_addr = sym_address.GetLoadAddress(&process_sp->GetTarget()); + + ret.GetScalar() = symbol_load_addr; + ret.SetValueType(Value::eValueTypeLoadAddress); + } + else + { + uint64_t symbol_file_addr = sym_address.GetFileAddress(); + + ret.GetScalar() = symbol_file_addr; + ret.SetValueType(Value::eValueTypeFileAddress); + } return ret; } |