diff options
-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; } |