diff options
author | ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2012-09-18 13:54:58 +0000 |
---|---|---|
committer | ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2012-09-18 13:54:58 +0000 |
commit | 61d9b9ff9626bf57c68a12c53c6e4804b8ef93d8 (patch) | |
tree | c85f99a0216bb237a36c59af6f196ca79e91e418 /src/client/linux/minidump_writer/minidump_writer.h | |
parent | Change an always true comparison to another conditional. Since (diff) | |
download | breakpad-61d9b9ff9626bf57c68a12c53c6e4804b8ef93d8.tar.xz |
Allow adding extra memory regions to minidump on linux/windows
A=Bill McCloskey <wmccloskey@mozilla.com>, ted, original patch from https://bugzilla.mozilla.org/show_bug.cgi?id=662646
R=mark at https://breakpad.appspot.com/450002/
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1041 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/linux/minidump_writer/minidump_writer.h')
-rw-r--r-- | src/client/linux/minidump_writer/minidump_writer.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/client/linux/minidump_writer/minidump_writer.h b/src/client/linux/minidump_writer/minidump_writer.h index 14da94b6..1370d938 100644 --- a/src/client/linux/minidump_writer/minidump_writer.h +++ b/src/client/linux/minidump_writer/minidump_writer.h @@ -51,6 +51,22 @@ struct MappingEntry { // A list of <MappingInfo, GUID> typedef std::list<MappingEntry> MappingList; +// These entries store a list of memory regions that the client wants included +// in the minidump. +struct AppMemory { + void* ptr; + size_t length; + + bool operator==(const struct AppMemory& other) const { + return ptr == other.ptr; + } + + bool operator==(const void* other) const { + return ptr == other; + } +}; +typedef std::list<AppMemory> AppMemoryList; + // Writes a minidump to the filesystem. These functions do not malloc nor use // libc functions which may. Thus, it can be used in contexts where the state // of the heap may be corrupt. @@ -67,16 +83,20 @@ bool WriteMinidump(const char* minidump_path, pid_t crashing_process, bool WriteMinidump(int minidump_fd, pid_t crashing_process, const void* blob, size_t blob_size); -// These overloads also allow passing a list of known mappings. +// These overloads also allow passing a list of known mappings and +// a list of additional memory regions to be included in the minidump. bool WriteMinidump(const char* minidump_path, pid_t crashing_process, const void* blob, size_t blob_size, - const MappingList& mappings); + const MappingList& mappings, + const AppMemoryList& appdata); bool WriteMinidump(int minidump_fd, pid_t crashing_process, const void* blob, size_t blob_size, - const MappingList& mappings); + const MappingList& mappings, + const AppMemoryList& appdata); bool WriteMinidump(const char* filename, const MappingList& mappings, + const AppMemoryList& appdata, LinuxDumper* dumper); } // namespace google_breakpad |