[Lldb-commits] [PATCH] D30454: [LLDB][MIPS] Regain Module Name if memory_info.GetName() is empty

Nitesh Jain via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 15 01:31:28 PDT 2017


nitesh.jain updated this revision to Diff 91833.
nitesh.jain retitled this revision from "[LLDB][MIPS] Fix typo in MatchesModuleSpec()" to "[LLDB][MIPS] Regain Module Name if memory_info.GetName()  is empty".
nitesh.jain added a comment.

In case of debugging normal process, the memory_info.GetName() is not empty and hence module is read from memory (m_process->ReadModuleFromMemory) and the corresponding sections are updated. In case of core file , the memory_info.GetName() is empty which causes FindFirstModule to matches with the first module in ModuleSpecList and result in loading wrong module at incorrect sections addresses. This patch regain "vdso" module name if  memory_info.GetName() is empty.


https://reviews.llvm.org/D30454

Files:
  source/Core/DynamicLoader.cpp


Index: source/Core/DynamicLoader.cpp
===================================================================
--- source/Core/DynamicLoader.cpp
+++ source/Core/DynamicLoader.cpp
@@ -190,6 +190,10 @@
     Error error = m_process->GetMemoryRegionInfo(base_addr, memory_info);
     if (error.Success() && memory_info.GetMapped() &&
         memory_info.GetRange().GetRangeBase() == base_addr) {
+      // Regain name if memory_info.GetName is empty
+      if (memory_info.GetName().IsEmpty())
+        memory_info.SetName(file.GetFilename().AsCString());
+   
       ModuleSpec new_module_spec(
           FileSpec(memory_info.GetName().AsCString(), false),
           target.GetArchitecture());


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30454.91833.patch
Type: text/x-patch
Size: 688 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20170315/f42f44e4/attachment.bin>


More information about the lldb-commits mailing list