Skip to content

Commit

Permalink
Merge target triple into module triple when constructing module from …
Browse files Browse the repository at this point in the history
…memory

Summary:
While debugging an android process remotely from a windows machine, I
noticed that the modules constructed from an object file in memory only had
information about the architecture. Without knowledge of the OS or environment,
expression evaluation sometimes leads to incorrectly generated code or a
debugger crash. While we cannot know for certain what triple a module
constructed from an in-memory object file will have, we can use the
triple from the target to try and fill in the missing details.

Reviewers: clayborg, zturner, JDevlieghere, compnerd, aprantl, labath

Subscribers: jdoerfert, lldb-commits

Differential Revision: https://reviews.llvm.org/D58405

llvm-svn: 354526
  • Loading branch information
bulbazord committed Feb 20, 2019
1 parent defb5a3 commit a07287e
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lldb/source/Core/Module.cpp
Expand Up @@ -309,6 +309,10 @@ ObjectFile *Module::GetMemoryObjectFile(const lldb::ProcessSP &process_sp,
// file's architecture since it might differ in vendor/os if some
// parts were unknown.
m_arch = m_objfile_sp->GetArchitecture();

// Augment the arch with the target's information in case
// we are unable to extract the os/environment from memory.
m_arch.MergeFrom(process_sp->GetTarget().GetArchitecture());
} else {
error.SetErrorString("unable to find suitable object file plug-in");
}
Expand Down

0 comments on commit a07287e

Please sign in to comment.