Author: labath
Date: Fri May 10 08:05:26 2019
New Revision: 360432

URL: http://llvm.org/viewvc/llvm-project?rev=360432&view=rev
Log:
minidump: Don't eagerly resolve module paths read from the minidump

This can cause us to return paths to files on the local filesystem even
if we don't end up using that file (for instance because the file is not
a real module).

Added:
    
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/relative_module_name.yaml
Modified:
    
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
    lldb/trunk/source/Plugins/Process/minidump/ProcessMinidump.cpp

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py?rev=360432&r1=360431&r2=360432&view=diff
==============================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
 (original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
 Fri May 10 08:05:26 2019
@@ -34,7 +34,7 @@ class MiniDumpUUIDTestCase(TestBase):
         self.assertEqual(verify_uuid, uuid)
 
     def get_minidump_modules(self, yaml_file):
-        minidump_path = self.getBuildArtifact(yaml_file + ".dmp")
+        minidump_path = self.getBuildArtifact(os.path.basename(yaml_file) + 
".dmp")
         self.yaml2obj(yaml_file, minidump_path)
         self.target = self.dbg.CreateTarget(None)
         self.process = self.target.LoadCore(minidump_path)
@@ -166,3 +166,14 @@ class MiniDumpUUIDTestCase(TestBase):
         self.verify_module(modules[0],
                            
"/invalid/path/on/current/system/libuuidmismatch.so", 
                            "7295E17C-6668-9E05-CBB5-DEE5003865D5")
+
+    def test_relative_module_name(self):
+        old_cwd = os.getcwd()
+        self.addTearDownHook(lambda: os.chdir(old_cwd))
+        os.chdir(self.getBuildDir())
+        name = "file-with-a-name-unlikely-to-exist-in-the-current-directory.so"
+        open(name, "a").close()
+        modules = self.get_minidump_modules(
+                self.getSourcePath("relative_module_name.yaml"))
+        self.assertEqual(1, len(modules))
+        self.verify_module(modules[0], name, None)

Added: 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/relative_module_name.yaml
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/relative_module_name.yaml?rev=360432&view=auto
==============================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/relative_module_name.yaml
 (added)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/relative_module_name.yaml
 Fri May 10 08:05:26 2019
@@ -0,0 +1,17 @@
+--- !minidump
+Streams:         
+  - Type:            SystemInfo
+    Processor Arch:  AMD64
+    Platform ID:     Linux
+    CSD Version:     '15E216'
+    CPU:             
+      Vendor ID:       GenuineIntel
+      Version Info:    0x00000000
+      Feature Info:    0x00000000
+  - Type:            ModuleList
+    Modules:         
+      - Base of Image:   0x0000000000001000
+        Size of Image:   0x00001000
+        Module Name:     
'file-with-a-name-unlikely-to-exist-in-the-current-directory.so'
+        CodeView Record: ''
+...

Modified: lldb/trunk/source/Plugins/Process/minidump/ProcessMinidump.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/ProcessMinidump.cpp?rev=360432&r1=360431&r2=360432&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/minidump/ProcessMinidump.cpp (original)
+++ lldb/trunk/source/Plugins/Process/minidump/ProcessMinidump.cpp Fri May 10 
08:05:26 2019
@@ -368,7 +368,6 @@ void ProcessMinidump::ReadModuleList() {
 
     const auto uuid = m_minidump_parser->GetModuleUUID(module);
     auto file_spec = FileSpec(name, GetArchitecture().GetTriple());
-    FileSystem::Instance().Resolve(file_spec);
     ModuleSpec module_spec(file_spec, uuid);
     module_spec.GetArchitecture() = GetArchitecture();
     Status error;


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to