Replace MMappedRange with MinidumpMemoryRange.

This patch is part of a bigger patch that helps merging the breakpad code
with the modified version in Chromium OS.

The MemoryRange class was added in r895 (http://breakpad.appspot.com/332001),
which is largely based on MMappedRange but generalized to be used in other
code. However, MemoryRange does not support minidump data structures. This
patch adds a MinidumpMemoryRange class that extends MemoryRange to handle
minidump data structures, which can then replace MMappedRange.

As with MemoryRange, MinidumpMemoryRange is unit tested.

BUG=455
TEST=Tested the following:
1. Build on 32-bit and 64-bit Linux with gcc 4.4.3 and gcc 4.6.
2. Build on Mac OS X 10.6.8 with gcc 4.2 and clang 3.0 (with latest gmock).
3. All unit tests pass.
4. Run minidump-2-core to covnert a minidump file to a core file.
Review URL: http://breakpad.appspot.com/335001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@898 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
benchan@chromium.org 2011-12-21 22:33:21 +00:00
parent 5951dd28af
commit 33c135a16f
6 changed files with 523 additions and 123 deletions

View file

@ -45,12 +45,6 @@ namespace google_breakpad {
// access of a subrange of the memory. Its implemementation does not
// allocate memory or call into libc functions, and is thus safer to use
// in a crashed environment.
//
// TODO(benchan): This class is largely based on the MMappedRange class
// in tools/linux/md2core/minidump-2-core.cc, but generalized for use in
// other code. Provide a variant of MemoryRange with methods for handling
// Minidump data structures in order to replace MMappedRange in
// minidump-2-core.cc.
class MemoryRange {
public:
MemoryRange() : data_(NULL), length_(0) {}