Author: labath Date: Tue May 14 01:59:08 2019 New Revision: 360655 URL: http://llvm.org/viewvc/llvm-project?rev=360655&view=rev Log: TestMinidumpNew.py: Use yaml2obj where possible
Replace checked-in minidumps with their yaml forms now that yaml2obj supports the ThreadList stream. I delete the test_modules_in_mini_dump test altogether as this functionality is covered more systematically in TestMinidumpUUID.py. Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.yaml lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.yaml lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.yaml lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64.yaml lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.yaml Removed: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.dmp lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.dmp lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.dmp lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.dmp Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpNew.py Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpNew.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpNew.py?rev=360655&r1=360654&r2=360655&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpNew.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpNew.py Tue May 14 01:59:08 2019 @@ -31,6 +31,13 @@ class MiniDumpNewTestCase(TestBase): lldb.DBG.SetSelectedPlatform(self._initial_platform) super(MiniDumpNewTestCase, self).tearDown() + def process_from_yaml(self, yaml_file): + 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) + return self.process + def check_state(self): with open(os.devnull) as devnul: # sanitize test output @@ -61,17 +68,17 @@ class MiniDumpNewTestCase(TestBase): def test_loadcore_error_status(self): """Test the SBTarget.LoadCore(core, error) overload.""" - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() + minidump_path = self.getBuildArtifact("linux-x86_64.dmp") + self.yaml2obj("linux-x86_64.yaml", minidump_path) + self.target = self.dbg.CreateTarget(None) error = lldb.SBError() - self.process = self.target.LoadCore("linux-x86_64.dmp", error) + self.process = self.target.LoadCore(minidump_path, error) self.assertTrue(self.process, PROCESS_IS_VALID) self.assertTrue(error.Success()) def test_loadcore_error_status_failure(self): """Test the SBTarget.LoadCore(core, error) overload.""" - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() + self.target = self.dbg.CreateTarget(None) error = lldb.SBError() self.process = self.target.LoadCore("non-existent.dmp", error) self.assertFalse(self.process, PROCESS_IS_VALID) @@ -79,19 +86,14 @@ class MiniDumpNewTestCase(TestBase): def test_process_info_in_minidump(self): """Test that lldb can read the process information from the Minidump.""" - # target create -c linux-x86_64.dmp - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() - self.process = self.target.LoadCore("linux-x86_64.dmp") + self.process_from_yaml("linux-x86_64.yaml") self.assertTrue(self.process, PROCESS_IS_VALID) self.assertEqual(self.process.GetNumThreads(), 1) self.assertEqual(self.process.GetProcessID(), self._linux_x86_64_pid) self.check_state() def test_memory_region_name(self): - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() - self.process = self.target.LoadCore("regions-linux-map.dmp") + self.process_from_yaml("regions-linux-map.yaml") result = lldb.SBCommandReturnObject() addr_region_name_pairs = [ ("0x400d9000", "/system/bin/app_process"), @@ -118,63 +120,9 @@ class MiniDumpNewTestCase(TestBase): region_name, command) self.assertTrue(region_name in result.GetOutput(), message) - def test_modules_in_mini_dump(self): - """Test that lldb can read the list of modules from the minidump.""" - # target create -c linux-x86_64.dmp - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() - self.process = self.target.LoadCore("linux-x86_64.dmp") - self.assertTrue(self.process, PROCESS_IS_VALID) - expected_modules = [ - { - 'filename' : 'linux-x86_64', - 'uuid' : 'E35C283B-C327-C287-62DB-788BF5A4078B-E2351448', - }, - { - 'filename' : 'libm-2.19.so', - 'uuid' : 'D144258E-6149-00B2-55A3-1F3FD2283A87-8670D5BC', - }, - { - 'filename' : 'libgcc_s.so.1', - 'uuid' : '36311B44-5771-0AE5-578C-4BF00791DED7-359DBB92', - }, - { - 'filename' : 'libstdc++.so.6.0.19', - 'uuid' : '76190E92-2AF7-457D-078F-75C9B15FA184-E83EB506', - }, - { - 'filename' : 'libc-2.19.so', - 'uuid' : 'CF699A15-CAAE-64F5-0311-FC4655B86DC3-9A479789', - }, - { - 'filename' : 'libpthread-2.19.so', - 'uuid' : '31E9F21A-E8C1-0396-171F-1E13DA157809-86FA696C', - }, - { - 'filename' : 'libbreakpad.so', - 'uuid' : '784FD549-332D-826E-D23F-18C17C6F320A', - }, - { - 'filename' : 'ld-2.19.so', - 'uuid' : 'D0F53790-4076-D73F-29E4-A37341F8A449-E2EF6CD0', - }, - { - 'filename' : 'linux-gate.so', - 'uuid' : '4EAD28F8-88EF-3520-872B-73C6F2FE7306-C41AF22F', - }, - ] - self.assertEqual(self.target.GetNumModules(), len(expected_modules)) - for module, expected in zip(self.target.modules, expected_modules): - self.assertTrue(module.IsValid()) - self.assertEqual(module.file.basename, expected['filename']) - self.assertEqual(module.GetUUIDString(), expected['uuid']) - def test_thread_info_in_minidump(self): """Test that lldb can read the thread information from the Minidump.""" - # target create -c linux-x86_64.dmp - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() - self.process = self.target.LoadCore("linux-x86_64.dmp") + self.process_from_yaml("linux-x86_64.yaml") self.check_state() # This process crashed due to a segmentation fault in its # one and only thread. @@ -238,10 +186,7 @@ class MiniDumpNewTestCase(TestBase): def test_arm64_registers(self): """Test ARM64 registers from a breakpad created minidump.""" - # target create -c arm64-macos.dmp - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() - self.process = self.target.LoadCore("arm64-macos.dmp") + self.process_from_yaml("arm64-macos.yaml") self.check_state() self.assertEqual(self.process.GetNumThreads(), 1) thread = self.process.GetThreadAtIndex(0) @@ -305,12 +250,10 @@ class MiniDumpNewTestCase(TestBase): Verify values of all ARM registers from a breakpad created minidump. """ - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() if apple: - self.process = self.target.LoadCore("arm-macos.dmp") + self.process_from_yaml("arm-macos.yaml") else: - self.process = self.target.LoadCore("arm-linux.dmp") + self.process_from_yaml("arm-linux.yaml") self.check_state() self.assertEqual(self.process.GetNumThreads(), 1) thread = self.process.GetThreadAtIndex(0) @@ -451,10 +394,7 @@ class MiniDumpNewTestCase(TestBase): def test_memory_regions_in_minidump(self): """Test memory regions from a Minidump""" - # target create -c regions-linux-map.dmp - self.dbg.CreateTarget(None) - self.target = self.dbg.GetSelectedTarget() - self.process = self.target.LoadCore("regions-linux-map.dmp") + self.process_from_yaml("regions-linux-map.yaml") self.check_state() regions_count = 19 Removed: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.dmp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.dmp?rev=360654&view=auto ============================================================================== Binary file - no diff available. Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.yaml?rev=360655&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.yaml (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-linux.yaml Tue May 14 01:59:08 2019 @@ -0,0 +1,18 @@ +--- !minidump +Streams: + - Type: SystemInfo + Processor Arch: ARM + Platform ID: Linux + CSD Version: ABC123 + CPU: + CPUID: 0x00000000 + - Type: MiscInfo + Content: 00000000010000007B000000000000000000000000000000 + - Type: ThreadList + Threads: + - Thread Id: 0x00001000 + Context: 060000400100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F0000001000000044332211DDCCBBAA887766550101000001000100020200000200020003030000030003000404000004000400050500000500050006060000060006000707000007000700080800000800080009090000090009000A0A00000A000A000B0B00000B000B000C0C00000C000C000D0D00000D000D000E0E00000E000E000F0F00000F000F0010100000100010001111000011001100121200001200120013130000130013001414000014001400151500001500150016160000160016001717000017001700181800001800180019190000190019001A1A00001A001A001B1B00001B001B001C1C00001C001C001D1D00001D001D001E1E00001E001E001F1F00001F001F0020200000200020000000000001000100020002000300030004000400050005000600060007000700 + Stack: + Start of Memory Range: 0x0000000000000000 + Content: '' +... Removed: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.dmp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.dmp?rev=360654&view=auto ============================================================================== Binary file - no diff available. Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.yaml?rev=360655&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.yaml (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm-macos.yaml Tue May 14 01:59:08 2019 @@ -0,0 +1,18 @@ +--- !minidump +Streams: + - Type: SystemInfo + Processor Arch: ARM + Platform ID: MacOSX + CSD Version: ABC123 + CPU: + CPUID: 0x00000000 + - Type: MiscInfo + Content: 00000000010000007B000000000000000000000000000000 + - Type: ThreadList + Threads: + - Thread Id: 0x00001000 + Context: 060000400100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F0000001000000044332211DDCCBBAA887766550101000001000100020200000200020003030000030003000404000004000400050500000500050006060000060006000707000007000700080800000800080009090000090009000A0A00000A000A000B0B00000B000B000C0C00000C000C000D0D00000D000D000E0E00000E000E000F0F00000F000F0010100000100010001111000011001100121200001200120013130000130013001414000014001400151500001500150016160000160016001717000017001700181800001800180019190000190019001A1A00001A001A001B1B00001B001B001C1C00001C001C001D1D00001D001D001E1E00001E001E001F1F00001F001F0020200000200020000000000001000100020002000300030004000400050005000600060007000700 + Stack: + Start of Memory Range: 0x0000000000000000 + Content: '' +... Removed: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.dmp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.dmp?rev=360654&view=auto ============================================================================== Binary file - no diff available. Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.yaml?rev=360655&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.yaml (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/arm64-macos.yaml Tue May 14 01:59:08 2019 @@ -0,0 +1,18 @@ +--- !minidump +Streams: + - Type: SystemInfo + Processor Arch: ARM64 + Platform ID: MacOSX + CSD Version: '15E216' + CPU: + CPUID: 0x00000000 + - Type: MiscInfo + Content: 00000000010000007B000000000000000000000000000000 + - Type: ThreadList + Threads: + - Thread Id: 0x00001000 + Context: 060000800000000001000000020003000200000003000400030000000400050004000000050006000500000006000700060000000700080007000000080009000800000009000A00090000000A000B000A0000000B000C000B0000000C000D000C0000000D000E000D0000000E000F000E0000000F0010000F00000010001100100000001100120011000000120013001200000013001400130000001400150014000000150016001500000016001700160000001700180017000000180019001800000019001A00190000001A001B001A0000001B001C001B0000001C001D001C0000001D001E001D0000001E001F001E0000001F0020001F00000020002100200000002100220000100000000000004433221188776655CCBBAA99000102030405060708090A0B0C0D0E0F0102030405060708090A0B0C0D0E0F1002030405060708090A0B0C0D0E0F1011030405060708090A0B0C0D0E0F1011120405060708090A0B0C0D0E0F1011121305060708090A0B0C0D0E0F1011121314060708090A0B0C0D0E0F1011121314150708090A0B0C0D0E0F1011121314151608090A0B0C0D0E0F1011121314151617090A0B0C0D0E0F1011121314151617180A0B0C0D0E0F101112131415161718190B0C0D0E0F101112131415161718191A0C0D0E0F101112131415161718191A1B0D0E0F101112131415161718191A1B1C0E0F101112131415161718191A1B1C1D0F101112131415161718191A1B1C1D1E101112131415161718191A1B1C1D1E1F1112131415161718191A1B1C1D1E1F2012131415161718191A1B1C1D1E1F2021131415161718191A1B1C1D1E1F2021221415161718191A1B1C1D1E1F2021222315161718191A1B1C1D1E1F2021222324161718191A1B1C1D1E1F2021222324251718191A1B1C1D1E1F2021222324252618191A1B1C1D1E1F2021222324252627191A1B1C1D1E1F2021222324252627281A1B1C1D1E1F202122232425262728291B1C1D1E1F202122232425262728292A1C1D1E1F202122232425262728292A2B1D1E1F202122232425262728292A2B2C1E1F202122232425262728292A2B2C2D1F202122232425262728292A2B2C2D2E + Stack: + Start of Memory Range: 0x0000000000000000 + Content: '' +... Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64.yaml?rev=360655&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64.yaml (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64.yaml Tue May 14 01:59:08 2019 @@ -0,0 +1,41 @@ +--- !minidump +Streams: + - Type: ThreadList + Threads: + - Thread Id: 0x000074DD + Context: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0010000000000033000000000000000000000002020100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040109600000000000100000000000000000000000000000068E7D0C8FF7F000068E7D0C8FF7F000097E6D0C8FF7F000010109600000000000000000000000000020000000000000088E4D0C8FF7F0000603FFF85C77F0000F00340000000000080E7D0C8FF7F000000000000000000000000000000000000E0034000000000007F0300000000000000000000000000000000000000000000801F0000FFFF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF252525252525252525252525252525250000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + Stack: + Start of Memory Range: 0x00007FFFC8D0E000 + Content: DEADBEEFBAADF00D + - Type: ModuleList + Modules: + - Base of Image: 0x0000000000400000 + Size of Image: 0x00001000 + Module Name: '/tmp/test/linux-x86_64' + CodeView Record: 4C457042E35C283BC327C28762DB788BF5A4078BE2351448 + - Type: Exception + Content: DD740000000000000B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0040000F8310000 + - Type: SystemInfo + Processor Arch: AMD64 + Processor Level: 6 + Processor Revision: 15876 + Number of Processors: 40 + Platform ID: Linux + CSD Version: 'Linux 3.13.0-91-generic' + CPU: + Vendor ID: GenuineIntel + Version Info: 0x00000000 + Feature Info: 0x00000000 + - Type: LinuxProcStatus + Text: | + Name: linux-x86_64 + State: t (tracing stop) + Tgid: 29917 + Ngid: 0 + Pid: 29917 + PPid: 29370 + TracerPid: 29918 + Uid: 1001 1001 1001 1001 + Gid: 1001 1001 1001 1001 + +... Removed: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.dmp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.dmp?rev=360654&view=auto ============================================================================== Binary file - no diff available. Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.yaml?rev=360655&view=auto ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.yaml (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/regions-linux-map.yaml Tue May 14 01:59:08 2019 @@ -0,0 +1,33 @@ +--- !minidump +Streams: + - Type: SystemInfo + Processor Arch: ARM64 + Platform ID: Linux + CSD Version: '15E216' + CPU: + CPUID: 0x00000000 + - Type: MiscInfo + Content: 00000000010000007B000000000000000000000000000000 + - Type: LinuxMaps + Text: | + 400d9000-400db000 r-xp 00000000 b3:04 227 /system/bin/app_process + 400db000-400dc000 r--p 00001000 b3:04 227 /system/bin/app_process + 400dc000-400dd000 rw-p 00000000 00:00 0 + 400dd000-400ec000 r-xp 00000000 b3:04 300 /system/bin/linker + 400ec000-400ed000 r--p 00000000 00:00 0 + 400ed000-400ee000 r--p 0000f000 b3:04 300 /system/bin/linker + 400ee000-400ef000 rw-p 00010000 b3:04 300 /system/bin/linker + 400ef000-400fb000 rw-p 00000000 00:00 0 + 400fb000-400fc000 r-xp 00000000 b3:04 1096 /system/lib/liblog.so + 400fc000-400fd000 rwxp 00001000 b3:04 1096 /system/lib/liblog.so + 400fd000-400ff000 r-xp 00002000 b3:04 1096 /system/lib/liblog.so + 400ff000-40100000 r--p 00003000 b3:04 1096 /system/lib/liblog.so + 40100000-40101000 rw-p 00004000 b3:04 1096 /system/lib/liblog.so + 40101000-40122000 r-xp 00000000 b3:04 955 /system/lib/libc.so + 40122000-40123000 rwxp 00021000 b3:04 955 /system/lib/libc.so + 40123000-40167000 r-xp 00022000 b3:04 955 /system/lib/libc.so + 40167000-40169000 r--p 00065000 b3:04 955 /system/lib/libc.so + 40169000-4016b000 rw-p 00067000 b3:04 955 /system/lib/libc.so + 4016b000-40176000 rw-p 00000000 00:00 0 + +... _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits