Author: davide Date: Wed Mar 27 17:07:07 2019 New Revision: 357134 URL: http://llvm.org/viewvc/llvm-project?rev=357134&view=rev Log: [ObjectFileMachO] Disable memory caching for savecore.
Summary: It's not really useful, and largely increases the footprint. <rdar://problem/49293525> Reviewers: jasonmolenda Subscribers: llvm-commits, lldb-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59896 Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp?rev=357134&r1=357133&r2=357134&view=diff ============================================================================== --- lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (original) +++ lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Wed Mar 27 17:07:07 2019 @@ -6128,18 +6128,6 @@ bool ObjectFileMachO::SaveCore(const lld if (range_info.GetExecutable() == MemoryRegionInfo::eYes) prot |= VM_PROT_EXECUTE; - // printf ("[%3u] [0x%16.16" PRIx64 " - - // 0x%16.16" PRIx64 ") %c%c%c\n", - // range_info_idx, - // addr, - // size, - // (prot & VM_PROT_READ ) ? 'r' : - // '-', - // (prot & VM_PROT_WRITE ) ? 'w' : - // '-', - // (prot & VM_PROT_EXECUTE) ? 'x' : - // '-'); - if (prot != 0) { uint32_t cmd_type = LC_SEGMENT_64; uint32_t segment_size = sizeof(segment_command_64); @@ -6346,8 +6334,13 @@ bool ObjectFileMachO::SaveCore(const lld while (bytes_left > 0 && error.Success()) { const size_t bytes_to_read = bytes_left > sizeof(bytes) ? sizeof(bytes) : bytes_left; - const size_t bytes_read = process_sp->ReadMemory( + + // In a savecore setting, we don't really care about caching, + // as the data is dumped and very likely never read again, + // so we call ReadMemoryFromInferior to bypass it. + const size_t bytes_read = process_sp->ReadMemoryFromInferior( addr, bytes, bytes_to_read, memory_read_error); + if (bytes_read == bytes_to_read) { size_t bytes_written = bytes_read; error = core_file.Write(bytes, bytes_written); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits