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());


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());
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to