diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index decccc494bc08f..8d3b3ebbe95f6b 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -6616,6 +6616,7 @@ bool ObjectFileMachO::SaveCore(const lldb::ProcessSP &process_sp, std::vector combined_page_objects; page_object last_obj; last_obj.addr = LLDB_INVALID_ADDRESS; + last_obj.size = 0; for (page_object obj : pages_to_copy) { if (last_obj.addr == LLDB_INVALID_ADDRESS) { last_obj = obj; @@ -6629,12 +6630,10 @@ bool ObjectFileMachO::SaveCore(const lldb::ProcessSP &process_sp, combined_page_objects.push_back(last_obj); last_obj = obj; } - - // If we only ended up with one contiguous memory segment - if (combined_page_objects.size() == 0 && - last_obj.addr != LLDB_INVALID_ADDRESS) { + // Add the last entry we were looking to combine + // on to the array. + if (last_obj.addr != LLDB_INVALID_ADDRESS && last_obj.size != 0) combined_page_objects.push_back(last_obj); - } for (page_object obj : combined_page_objects) { uint32_t cmd_type = LC_SEGMENT_64; diff --git a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py index a0822a6e392d92..4257aa5ca26a51 100644 --- a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py +++ b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py @@ -16,6 +16,7 @@ class TestSkinnyCorefile(TestBase): mydir = TestBase.compute_mydir(__file__) + @skipIfOutOfTreeDebugserver # newer debugserver required for these qMemoryRegionInfo types @skipIf(debug_info=no_match(["dsym"]), bugnumber="This test is looking explicitly for a dSYM") @skipUnlessDarwin def test_lc_note(self): diff --git a/lldb/test/API/macosx/stack-corefile/TestStackCorefile.py b/lldb/test/API/macosx/stack-corefile/TestStackCorefile.py index a9104e73419dc1..b1c0fa98712e37 100644 --- a/lldb/test/API/macosx/stack-corefile/TestStackCorefile.py +++ b/lldb/test/API/macosx/stack-corefile/TestStackCorefile.py @@ -13,6 +13,7 @@ class TestStackCorefile(TestBase): mydir = TestBase.compute_mydir(__file__) + @skipIfOutOfTreeDebugserver # newer debugserver required for these qMemoryRegionInfo types @no_debug_info_test @skipUnlessDarwin def test(self): diff --git a/lldb/tools/debugserver/source/RNBRemote.cpp b/lldb/tools/debugserver/source/RNBRemote.cpp index b70c7ae3707e50..dd8b90297995ac 100644 --- a/lldb/tools/debugserver/source/RNBRemote.cpp +++ b/lldb/tools/debugserver/source/RNBRemote.cpp @@ -4311,6 +4311,7 @@ rnb_err_t RNBRemote::HandlePacket_MemoryRegionInfo(const char *p) { } ostrm << ";"; if (!region_info.vm_types.empty()) { + ostrm << "type:"; for (size_t i = 0; i < region_info.vm_types.size(); i++) { if (i) ostrm << ",";