diff options
| author | Pavel Labath <labath@google.com> | 2018-04-19 09:38:42 +0000 |
|---|---|---|
| committer | Pavel Labath <labath@google.com> | 2018-04-19 09:38:42 +0000 |
| commit | 5976f30821483361c19ac3b2ad927f5fb8de2e48 (patch) | |
| tree | c37dbaf5ec8f70efd93e159f9bcf0d38401e8e77 | |
| parent | a79ea80d7bf2c7e15a223eeabc48ec5ef298fe05 (diff) | |
| download | bcm5719-llvm-5976f30821483361c19ac3b2ad927f5fb8de2e48.tar.gz bcm5719-llvm-5976f30821483361c19ac3b2ad927f5fb8de2e48.zip | |
Attempt to fix TestMiniDump on windows
It was failing because the modules names were coming out as
C:\Windows\System32/MSVCP120D.dll (last separator is a forward slash) on
windows.
There are two issues at play here:
- the first problem is that the paths in minidump were being parsed as a
host path. This meant that on posix systems the whole path was
interpreted as a file name.
- on windows the path was split into a directory-filename pair
correctly, but then when it was reconsituted, the last separator ended
up being a forward slash because SBFileSpec.fullpath was joining them
with '/' unconditionally.
I fix the first issue by parsing the minidump paths according to the
path syntax of the host which produced the dump, which should make the
test behavior on posix&windows identical. The last path will still be a
forward slash because of the second issue. We should probably fix the
"fullpath" property to do something smarter in the future.
llvm-svn: 330314
| -rw-r--r-- | lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump/TestMiniDump.py | 12 | ||||
| -rw-r--r-- | lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp | 3 |
2 files changed, 8 insertions, 7 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump/TestMiniDump.py b/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump/TestMiniDump.py index cc677e6dcde..7b24d5b01fb 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump/TestMiniDump.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump/TestMiniDump.py @@ -49,12 +49,12 @@ class MiniDumpTestCase(TestBase): self.process = self.target.LoadCore("fizzbuzz_no_heap.dmp") self.assertTrue(self.process, PROCESS_IS_VALID) expected_modules = [ - r"C:\Windows\System32\MSVCP120D.dll", - r"C:\Windows\SysWOW64\kernel32.dll", - r"C:\Users\amccarth\Documents\Visual Studio 2013\Projects\fizzbuzz\Debug\fizzbuzz.exe", - r"C:\Windows\System32\MSVCR120D.dll", - r"C:\Windows\SysWOW64\KERNELBASE.dll", - r"C:\Windows\SysWOW64\ntdll.dll", + r"C:\Windows\System32/MSVCP120D.dll", + r"C:\Windows\SysWOW64/kernel32.dll", + r"C:\Users\amccarth\Documents\Visual Studio 2013\Projects\fizzbuzz\Debug/fizzbuzz.exe", + r"C:\Windows\System32/MSVCR120D.dll", + r"C:\Windows\SysWOW64/KERNELBASE.dll", + r"C:\Windows\SysWOW64/ntdll.dll", ] self.assertEqual(self.target.GetNumModules(), len(expected_modules)) for module, expected in zip(self.target.modules, expected_modules): diff --git a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp index 6bfe0e759e9..44efc57c9a6 100644 --- a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp +++ b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp @@ -321,7 +321,8 @@ void ProcessMinidump::ReadModuleList() { m_is_wow64 = true; } - const auto file_spec = FileSpec(name.getValue(), true); + const auto file_spec = + FileSpec(name.getValue(), true, GetArchitecture().GetTriple()); ModuleSpec module_spec = file_spec; Status error; lldb::ModuleSP module_sp = GetTarget().GetSharedModule(module_spec, &error); |

