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