Write adjusted range back to module

In Android, the mmap could be overlapped by /dev/ashmem, we adjusted
the range in https://breakpad.appspot.com/9744002/, but adjusted
range isn't written back to module, this caused the corresponding
module be dropped in BasicCodeModules copy constructor.

This also fix a lot of 'unable to store module' warnings
when dumping Android's minidump.

BUG=606972
R=mark@chromium.org, wfh@chromium.org

Review URL: https://codereview.chromium.org/1939333002 .

Patch from Tao Bai <michaelbai@chromium.org>.
This commit is contained in:
Tao Bai 2016-05-03 18:14:28 -04:00 committed by Mark Mentovai
parent fcb844ee32
commit 4f417c8c0f
2 changed files with 13 additions and 0 deletions

View file

@ -382,6 +382,11 @@ class MinidumpModule : public MinidumpObject,
const MDRawModule* module() const { return valid_ ? &module_ : NULL; }
// This method is intented to handle the case on Android where the module
// could overlap with ashmem, and is not supposed to be used in anywhere
// else.
void set_base_address_and_size(uint64_t base_address, uint64_t size);
// CodeModule implementation
virtual uint64_t base_address() const {
return valid_ ? module_.base_of_image : static_cast<uint64_t>(-1);