[Lldb-commits] [lldb] r361126 - minidump: Remove checked-in files used for testing MemoryList handling
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Mon May 20 01:22:59 PDT 2019
Author: labath
Date: Mon May 20 01:22:59 2019
New Revision: 361126
URL: http://llvm.org/viewvc/llvm-project?rev=361126&view=rev
Log:
minidump: Remove checked-in files used for testing MemoryList handling
Now that yaml2obj supports this stream, we can use the yaml form
instead.
Removed:
lldb/trunk/unittests/Process/minidump/Inputs/memory-list-not-padded.dmp
lldb/trunk/unittests/Process/minidump/Inputs/memory-list-padded.dmp
lldb/trunk/unittests/Process/minidump/Inputs/regions-linux-map.dmp
lldb/trunk/unittests/Process/minidump/Inputs/regions-memlist.dmp
Modified:
lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h
lldb/trunk/unittests/Process/minidump/CMakeLists.txt
lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp
Modified: lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h?rev=361126&r1=361125&r2=361126&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h (original)
+++ lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.h Mon May 20 01:22:59 2019
@@ -41,6 +41,10 @@ struct Range {
Range(lldb::addr_t start, llvm::ArrayRef<uint8_t> range_ref)
: start(start), range_ref(range_ref) {}
+
+ friend bool operator==(const Range &lhs, const Range &rhs) {
+ return lhs.start == rhs.start && lhs.range_ref == rhs.range_ref;
+ }
};
class MinidumpParser {
Modified: lldb/trunk/unittests/Process/minidump/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Process/minidump/CMakeLists.txt?rev=361126&r1=361125&r2=361126&view=diff
==============================================================================
--- lldb/trunk/unittests/Process/minidump/CMakeLists.txt (original)
+++ lldb/trunk/unittests/Process/minidump/CMakeLists.txt Mon May 20 01:22:59 2019
@@ -20,10 +20,6 @@ set(test_inputs
fizzbuzz_wow64.dmp
linux-x86_64.dmp
linux-x86_64_not_crashed.dmp
- memory-list-not-padded.dmp
- memory-list-padded.dmp
- regions-linux-map.dmp
- regions-memlist.dmp
regions-memlist64.dmp
)
Removed: lldb/trunk/unittests/Process/minidump/Inputs/memory-list-not-padded.dmp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Process/minidump/Inputs/memory-list-not-padded.dmp?rev=361125&view=auto
==============================================================================
Binary file - no diff available.
Removed: lldb/trunk/unittests/Process/minidump/Inputs/memory-list-padded.dmp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Process/minidump/Inputs/memory-list-padded.dmp?rev=361125&view=auto
==============================================================================
Binary file - no diff available.
Removed: lldb/trunk/unittests/Process/minidump/Inputs/regions-linux-map.dmp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Process/minidump/Inputs/regions-linux-map.dmp?rev=361125&view=auto
==============================================================================
Binary file - no diff available.
Removed: lldb/trunk/unittests/Process/minidump/Inputs/regions-memlist.dmp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Process/minidump/Inputs/regions-memlist.dmp?rev=361125&view=auto
==============================================================================
Binary file - no diff available.
Modified: lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp?rev=361126&r1=361125&r2=361126&view=diff
==============================================================================
--- lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp (original)
+++ lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp Mon May 20 01:22:59 2019
@@ -75,7 +75,7 @@ TEST_F(MinidumpParserTest, InvalidMinidu
llvm::raw_string_ostream os(duplicate_streams);
ASSERT_THAT_ERROR(llvm::MinidumpYAML::writeAsBinary(R"(
--- !minidump
-Streams:
+Streams:
- Type: LinuxAuxv
Content: DEADBEEFBAADF00D
- Type: LinuxAuxv
@@ -92,11 +92,11 @@ Streams:
TEST_F(MinidumpParserTest, GetThreadsAndGetThreadContext) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: ThreadList
- Threads:
+ Threads:
- Thread Id: 0x00003E81
- Stack:
+ Stack:
Start of Memory Range: 0x00007FFCEB34A000
Content: C84D04BCE97F00
Context: 00000000000000
@@ -116,41 +116,17 @@ Streams:
EXPECT_EQ(7u, context.size());
}
-TEST_F(MinidumpParserTest, GetMemoryListNotPadded) {
- // Verify that we can load a memory list that doesn't have 4 bytes of padding
- // after the memory range count.
- SetUpData("memory-list-not-padded.dmp");
- auto mem = parser->FindMemoryRange(0x8000);
- ASSERT_TRUE(mem.hasValue());
- EXPECT_EQ((lldb::addr_t)0x8000, mem->start);
- mem = parser->FindMemoryRange(0x8010);
- ASSERT_TRUE(mem.hasValue());
- EXPECT_EQ((lldb::addr_t)0x8010, mem->start);
-}
-
-TEST_F(MinidumpParserTest, GetMemoryListPadded) {
- // Verify that we can load a memory list that has 4 bytes of padding
- // after the memory range count as found in breakpad minidump files.
- SetUpData("memory-list-padded.dmp");
- auto mem = parser->FindMemoryRange(0x8000);
- ASSERT_TRUE(mem.hasValue());
- EXPECT_EQ((lldb::addr_t)0x8000, mem->start);
- mem = parser->FindMemoryRange(0x8010);
- ASSERT_TRUE(mem.hasValue());
- EXPECT_EQ((lldb::addr_t)0x8010, mem->start);
-}
-
TEST_F(MinidumpParserTest, GetArchitecture) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: SystemInfo
Processor Arch: AMD64
Processor Level: 6
Processor Revision: 16130
Number of Processors: 1
Platform ID: Linux
- CPU:
+ CPU:
Vendor ID: GenuineIntel
Version Info: 0x00000000
Feature Info: 0x00000000
@@ -163,14 +139,47 @@ Streams:
parser->GetArchitecture().GetTriple().getOS());
}
-TEST_F(MinidumpParserTest, GetMiscInfo) {
- SetUpData("linux-x86_64.dmp");
- const MinidumpMiscInfo *misc_info = parser->GetMiscInfo();
- ASSERT_EQ(nullptr, misc_info);
+TEST_F(MinidumpParserTest, GetMiscInfo_no_stream) {
+ // Test that GetMiscInfo returns nullptr when the minidump does not contain
+ // this stream.
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+...
+)"),
+ llvm::Succeeded());
+ EXPECT_EQ(nullptr, parser->GetMiscInfo());
}
TEST_F(MinidumpParserTest, GetLinuxProcStatus) {
- SetUpData("linux-x86_64.dmp");
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+ - Type: SystemInfo
+ Processor Arch: AMD64
+ Processor Level: 6
+ Processor Revision: 16130
+ Number of Processors: 1
+ 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: a.out
+ State: t (tracing stop)
+ Tgid: 16001
+ Ngid: 0
+ Pid: 16001
+ PPid: 13243
+ TracerPid: 16002
+ Uid: 404696 404696 404696 404696
+ Gid: 5762 5762 5762 5762
+...
+)"),
+ llvm::Succeeded());
llvm::Optional<LinuxProcStatus> proc_status = parser->GetLinuxProcStatus();
ASSERT_TRUE(proc_status.hasValue());
lldb::pid_t pid = proc_status->GetPid();
@@ -178,7 +187,34 @@ TEST_F(MinidumpParserTest, GetLinuxProcS
}
TEST_F(MinidumpParserTest, GetPid) {
- SetUpData("linux-x86_64.dmp");
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+ - Type: SystemInfo
+ Processor Arch: AMD64
+ Processor Level: 6
+ Processor Revision: 16130
+ Number of Processors: 1
+ 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: a.out
+ State: t (tracing stop)
+ Tgid: 16001
+ Ngid: 0
+ Pid: 16001
+ PPid: 13243
+ TracerPid: 16002
+ Uid: 404696 404696 404696 404696
+ Gid: 5762 5762 5762 5762
+...
+)"),
+ llvm::Succeeded());
llvm::Optional<lldb::pid_t> pid = parser->GetPid();
ASSERT_TRUE(pid.hasValue());
ASSERT_EQ(16001UL, pid.getValue());
@@ -187,9 +223,9 @@ TEST_F(MinidumpParserTest, GetPid) {
TEST_F(MinidumpParserTest, GetFilteredModuleList) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: ModuleList
- Modules:
+ Modules:
- Base of Image: 0x0000000000400000
Size of Image: 0x00001000
Module Name: '/tmp/test/linux-x86_64_not_crashed'
@@ -228,30 +264,55 @@ void check_mem_range_exists(MinidumpPars
}
TEST_F(MinidumpParserTest, FindMemoryRange) {
- SetUpData("linux-x86_64.dmp");
- // There are two memory ranges in the file (size is in bytes, decimal):
- // 1) 0x401d46 256
- // 2) 0x7ffceb34a000 12288
- EXPECT_FALSE(parser->FindMemoryRange(0x00).hasValue());
- EXPECT_FALSE(parser->FindMemoryRange(0x2a).hasValue());
-
- check_mem_range_exists(*parser, 0x401d46, 256);
- EXPECT_FALSE(parser->FindMemoryRange(0x401d46 + 256).hasValue());
-
- check_mem_range_exists(*parser, 0x7ffceb34a000, 12288);
- EXPECT_FALSE(parser->FindMemoryRange(0x7ffceb34a000 + 12288).hasValue());
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+ - Type: MemoryList
+ Memory Ranges:
+ - Start of Memory Range: 0x00007FFCEB34A000
+ Content: C84D04BCE9
+ - Start of Memory Range: 0x0000000000401D46
+ Content: 5421
+...
+)"),
+ llvm::Succeeded());
+ EXPECT_EQ(llvm::None, parser->FindMemoryRange(0x00));
+ EXPECT_EQ(llvm::None, parser->FindMemoryRange(0x2a));
+ EXPECT_EQ((minidump::Range{0x401d46, llvm::ArrayRef<uint8_t>{0x54, 0x21}}),
+ parser->FindMemoryRange(0x401d46));
+ EXPECT_EQ(llvm::None, parser->FindMemoryRange(0x401d46 + 2));
+
+ EXPECT_EQ(
+ (minidump::Range{0x7ffceb34a000,
+ llvm::ArrayRef<uint8_t>{0xc8, 0x4d, 0x04, 0xbc, 0xe9}}),
+ parser->FindMemoryRange(0x7ffceb34a000 + 2));
+ EXPECT_EQ(llvm::None, parser->FindMemoryRange(0x7ffceb34a000 + 5));
}
TEST_F(MinidumpParserTest, GetMemory) {
- SetUpData("linux-x86_64.dmp");
-
- EXPECT_EQ(128UL, parser->GetMemory(0x401d46, 128).size());
- EXPECT_EQ(256UL, parser->GetMemory(0x401d46, 512).size());
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+ - Type: MemoryList
+ Memory Ranges:
+ - Start of Memory Range: 0x00007FFCEB34A000
+ Content: C84D04BCE9
+ - Start of Memory Range: 0x0000000000401D46
+ Content: 5421
+...
+)"),
+ llvm::Succeeded());
- EXPECT_EQ(12288UL, parser->GetMemory(0x7ffceb34a000, 12288).size());
- EXPECT_EQ(1024UL, parser->GetMemory(0x7ffceb34a000, 1024).size());
+ EXPECT_EQ((llvm::ArrayRef<uint8_t>{0x54}), parser->GetMemory(0x401d46, 1));
+ EXPECT_EQ((llvm::ArrayRef<uint8_t>{0x54, 0x21}),
+ parser->GetMemory(0x401d46, 4));
+
+ EXPECT_EQ((llvm::ArrayRef<uint8_t>{0xc8, 0x4d, 0x04, 0xbc, 0xe9}),
+ parser->GetMemory(0x7ffceb34a000, 5));
+ EXPECT_EQ((llvm::ArrayRef<uint8_t>{0xc8, 0x4d, 0x04}),
+ parser->GetMemory(0x7ffceb34a000, 3));
- EXPECT_TRUE(parser->GetMemory(0x500000, 512).empty());
+ EXPECT_EQ(llvm::ArrayRef<uint8_t>(), parser->GetMemory(0x500000, 512));
}
TEST_F(MinidumpParserTest, FindMemoryRangeWithFullMemoryMinidump) {
@@ -320,7 +381,18 @@ TEST_F(MinidumpParserTest, GetMemoryRegi
}
TEST_F(MinidumpParserTest, GetMemoryRegionInfoFromMemoryList) {
- SetUpData("regions-memlist.dmp");
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+ - Type: MemoryList
+ Memory Ranges:
+ - Start of Memory Range: 0x0000000000001000
+ Content: '31313131313131313131313131313131'
+ - Start of Memory Range: 0x0000000000002000
+ Content: '3333333333333333333333333333333333333333333333333333333333333333'
+...
+)"),
+ llvm::Succeeded());
// Test we can get memory regions from the MINIDUMP_MEMORY_LIST stream when
// we don't have a MemoryInfoListStream.
@@ -348,7 +420,34 @@ TEST_F(MinidumpParserTest, GetMemoryRegi
}
TEST_F(MinidumpParserTest, GetMemoryRegionInfoLinuxMaps) {
- SetUpData("regions-linux-map.dmp");
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+ - 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
+
+...
+)"),
+ llvm::Succeeded());
// Test we can get memory regions from the linux /proc/<pid>/maps stream when
// we don't have a MemoryInfoListStream.
@@ -386,7 +485,7 @@ TEST_F(MinidumpParserTest, GetMemoryRegi
TEST_F(MinidumpParserTest, GetArchitectureWindows) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: SystemInfo
Processor Arch: X86
Processor Level: 6
@@ -399,7 +498,7 @@ Streams:
Platform ID: Win32NT
CSD Version: Service Pack 1
Suite Mask: 0x0100
- CPU:
+ CPU:
Vendor ID: GenuineIntel
Version Info: 0x000306E4
Feature Info: 0xBFEBFBFF
@@ -413,11 +512,16 @@ Streams:
parser->GetArchitecture().GetTriple().getOS());
}
-// fizzbuzz_no_heap.dmp is copied from the WinMiniDump tests
-TEST_F(MinidumpParserTest, GetLinuxProcStatusWindows) {
- SetUpData("fizzbuzz_no_heap.dmp");
- llvm::Optional<LinuxProcStatus> proc_status = parser->GetLinuxProcStatus();
- ASSERT_FALSE(proc_status.hasValue());
+TEST_F(MinidumpParserTest, GetLinuxProcStatus_no_stream) {
+ // Test that GetLinuxProcStatus returns nullptr when the minidump does not
+ // contain this stream.
+ ASSERT_THAT_ERROR(SetUpFromYaml(R"(
+--- !minidump
+Streams:
+...
+)"),
+ llvm::Succeeded());
+ EXPECT_EQ(llvm::None, parser->GetLinuxProcStatus());
}
TEST_F(MinidumpParserTest, GetMiscInfoWindows) {
@@ -451,11 +555,11 @@ TEST_F(MinidumpParserTest, GetPidWow64)
TEST_F(MinidumpParserTest, GetThreadContext_x86_32) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: ThreadList
- Threads:
+ Threads:
- Thread Id: 0x00026804
- Stack:
+ Stack:
Start of Memory Range: 0x00000000FF9DD000
Content: 68D39DFF
Context: 0F0001000000000000000000000000000000000000000000000000007F03FFFF0000FFFFFFFFFFFF09DC62F72300000088E36CF72B00FFFF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063000000000000002B0000002B000000A88204085CD59DFF008077F7A3D49DFF01000000000000003CD59DFFA082040823000000820201002CD59DFF2B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
@@ -494,11 +598,11 @@ Streams:
TEST_F(MinidumpParserTest, GetThreadContext_x86_64) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: ThreadList
- Threads:
+ Threads:
- Thread Id: 0x00003E81
- Stack:
+ Stack:
Start of Memory Range: 0x00007FFCEB34A000
Content: C84D04BCE97F00
Context: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0010000000000033000000000000000000000006020100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000010A234EBFC7F000010A234EBFC7F00000000000000000000F09C34EBFC7F0000C0A91ABCE97F00000000000000000000A0163FBCE97F00004602000000000000921C40000000000030A434EBFC7F000000000000000000000000000000000000C61D4000000000007F0300000000000000000000000000000000000000000000801F0000FFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFF00FFFFFFFFFFFFFF00FFFFFFFF25252525252525252525252525252525000000000000000000000000000000000000000000000000000000000000000000FFFF00FFFFFFFFFFFFFF00FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
@@ -573,9 +677,9 @@ TEST_F(MinidumpParserTest, GetThreadCont
TEST_F(MinidumpParserTest, MinidumpDuplicateModuleMinAddress) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: ModuleList
- Modules:
+ Modules:
- Base of Image: 0x0000000000002000
Size of Image: 0x00001000
Module Name: '/tmp/a'
@@ -598,9 +702,9 @@ Streams:
TEST_F(MinidumpParserTest, MinidumpModuleOrder) {
ASSERT_THAT_ERROR(SetUpFromYaml(R"(
--- !minidump
-Streams:
+Streams:
- Type: ModuleList
- Modules:
+ Modules:
- Base of Image: 0x0000000000002000
Size of Image: 0x00001000
Module Name: '/tmp/a'
More information about the lldb-commits
mailing list