Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Unified Diff: src/google_breakpad/processor/minidump.h

Issue 2060663002: Server-side workaround to handle overlapping modules. (Closed) Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Fix whitespace. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/google_breakpad/processor/microdump.h ('k') | src/google_breakpad/processor/process_state.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/google_breakpad/processor/minidump.h
diff --git a/src/google_breakpad/processor/minidump.h b/src/google_breakpad/processor/minidump.h
index 2b5025e4ff55740dc9306e97d4068fd970f7e498..88a3926aa61eee8a4dc436f8ea52b97dec9892b5 100644
--- a/src/google_breakpad/processor/minidump.h
+++ b/src/google_breakpad/processor/minidump.h
@@ -151,6 +151,8 @@ class MinidumpStream : public MinidumpObject {
// that implements MinidumpStream can compare expected_size to a
// known size as an integrity check.
virtual bool Read(uint32_t expected_size) = 0;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpStream);
};
@@ -191,6 +193,8 @@ class MinidumpContext : public DumpContext {
// for access to data about the minidump file itself, such as whether
// it should be byte-swapped.
Minidump* minidump_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpContext);
};
@@ -358,6 +362,8 @@ class MinidumpThreadList : public MinidumpStream {
// The list of threads.
MinidumpThreads* threads_;
uint32_t thread_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpThreadList);
};
@@ -392,7 +398,14 @@ class MinidumpModule : public MinidumpObject,
virtual string debug_file() const;
virtual string debug_identifier() const;
virtual string version() const;
- virtual const CodeModule* Copy() const;
+ virtual CodeModule* Copy() const;
+
+ // Getter and setter for shrink_down_delta. This is used when the address
+ // range for a module is shrunk down due to address range conflicts with
+ // other modules. The base_address and size fields are not updated and they
+ // should always reflect the original values (reported in the minidump).
+ virtual uint64_t shrink_down_delta() const;
+ virtual void SetShrinkDownDelta(uint64_t shrink_down_delta);
// The CodeView record, which contains information to locate the module's
// debugging information (pdb). This is returned as uint8_t* because
@@ -501,6 +514,13 @@ class MinidumpModuleList : public MinidumpStream,
virtual const MinidumpModule* GetModuleAtIndex(unsigned int index) const;
virtual const CodeModules* Copy() const;
+ // Returns a vector of all modules which address ranges needed to be shrunk
+ // down due to address range conflicts with other modules.
+ virtual vector<linked_ptr<const CodeModule> > GetShrunkRangeModules() const;
+
+ // Returns true, if module address range shrink is enabled.
+ virtual bool IsModuleShrinkEnabled() const;
+
// Print a human-readable representation of the object to stdout.
void Print();
@@ -525,6 +545,8 @@ class MinidumpModuleList : public MinidumpStream,
MinidumpModules *modules_;
uint32_t module_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpModuleList);
};
@@ -587,6 +609,8 @@ class MinidumpMemoryList : public MinidumpStream {
// The list of regions.
MemoryRegions *regions_;
uint32_t region_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryList);
};
@@ -626,6 +650,8 @@ class MinidumpException : public MinidumpStream {
MDRawExceptionStream exception_;
MinidumpContext* context_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpException);
};
// MinidumpAssertion wraps MDRawAssertionInfo, which contains information
@@ -666,6 +692,8 @@ class MinidumpAssertion : public MinidumpStream {
string expression_;
string function_;
string file_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpAssertion);
};
@@ -719,6 +747,8 @@ class MinidumpSystemInfo : public MinidumpStream {
// A string identifying the CPU vendor, if known.
const string* cpu_vendor_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpSystemInfo);
};
@@ -752,6 +782,8 @@ class MinidumpMiscInfo : public MinidumpStream {
string daylight_name_;
string build_string_;
string dbg_bld_str_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpMiscInfo);
};
@@ -784,6 +816,8 @@ class MinidumpBreakpadInfo : public MinidumpStream {
bool Read(uint32_t expected_size_);
MDRawBreakpadInfo breakpad_info_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpBreakpadInfo);
};
// MinidumpMemoryInfo wraps MDRawMemoryInfo, which provides information
@@ -854,6 +888,8 @@ class MinidumpMemoryInfoList : public MinidumpStream {
MinidumpMemoryInfos* infos_;
uint32_t info_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryInfoList);
};
// MinidumpLinuxMaps wraps information about a single mapped memory region
@@ -1061,6 +1097,9 @@ class Minidump {
// Print a human-readable representation of the object to stdout.
void Print();
+ // Is the OS Android.
+ bool IsAndroid();
+
private:
// MinidumpStreamInfo is used in the MinidumpStreamMap. It lets
// the Minidump object locate interesting streams quickly, and
@@ -1074,6 +1113,9 @@ class Minidump {
// Pointer to the stream if cached, or NULL if not yet populated
MinidumpStream* stream;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MinidumpStreamInfo);
};
typedef vector<MDRawDirectory> MinidumpDirectoryEntries;
@@ -1121,6 +1163,8 @@ class Minidump {
// construction or after a failed Read(); true following a successful
// Read().
bool valid_;
+
+ DISALLOW_COPY_AND_ASSIGN(Minidump);
};
« no previous file with comments | « src/google_breakpad/processor/microdump.h ('k') | src/google_breakpad/processor/process_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698