================
@@ -657,8 +657,11 @@ MinidumpFileBuilder::AddMemoryList(const lldb::ProcessSP
&process_sp,
auto data_up = std::make_unique<DataBufferHeap>(size, 0);
const size_t bytes_read =
process_sp->ReadMemory(addr, data_up->GetBytes(), size, error);
- if (bytes_read == 0)
+ if (error.Fail() || bytes_read == 0) {
----------------
clayborg wrote:
So a few things here:
1 - We should fix `Process::CalculateCoreFileSaveRanges(...)` to not include
memory ranges that have no read access. The fix will need to go into this
function in Process.cpp:
```
static void AddRegion(const MemoryRegionInfo ®ion, bool try_dirty_pages,
Process::CoreFileMemoryRanges &ranges) {
// Don't add empty ranges or ranges with no permissions.
if (region.GetRange().GetByteSize() == 0 || region.GetLLDBPermissions() == 0)
return;
if (try_dirty_pages && AddDirtyPages(region, ranges))
return;
ranges.push_back(CreateCoreFileMemoryRange(region));
}
```
Above is the current version of this function, we just need to fix the first if
statement to not just check if there are any permissions, but to check if the
section is readable:
```
if (region.GetRange().GetByteSize() == 0 || ((region.GetLLDBPermissions() &
lldb::ePermissionsReadable) == 0))
```
https://github.com/llvm/llvm-project/pull/88564
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits