Commit 2b30fc2f authored by Jason Molenda's avatar Jason Molenda
Browse files

Fix two bugs with stack corefiles patch, restrict test built debugserver

These two tests, TestSkinnyCorefile.py and TestStackCorefile.py,
require a new debugserver on darwin systems to run correctly; for now,
skip them if the system debugserver is in use.  There's no easy way to
test if the debugserver being used supports either of these memory
region info features. For end users, the fallback will be a full
corefile and that's not the worst thing, but for the tests it is a
problem.
parent 73056f23
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -6616,6 +6616,7 @@ bool ObjectFileMachO::SaveCore(const lldb::ProcessSP &process_sp,
        std::vector<page_object> 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;
+1 −0
Original line number Diff line number Diff line
@@ -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):
+1 −0
Original line number Diff line number Diff line
@@ -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):
+1 −0
Original line number Diff line number Diff line
@@ -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 << ",";