breakpad/src/client
Ting-Yuan (Leo) Huang 41b91d064e Recover memory mappings before writing dump on ChromeOS
On Linux, breakpad relies on /proc/[pid]/maps to associate symbols from
addresses. ChromeOS' hugepage implementation replaces some segments
with anonymous private pages, which is a restriction of current
implementation in Linux kernel at the time of writing. Thus, breakpad
can no longer symbolize addresses from those text segments replaced by
hugepages.

This patch tries to recover the mappings. Because hugepages are always
inserted in between some .text sections, it tries to infer the names and
offsets of the segments, by looking at segments immediately precede and
succeed them.

For example, a text segment before hugepage optimization
  02001000-03002000 r-xp /opt/google/chrome/chrome

can be broken into
  02001000-02200000 r-xp /opt/google/chrome/chrome
  02200000-03000000 r-xp
  03000000-03002000 r-xp /opt/google/chrome/chrome

BUG=crbug.com/628040
R=mark@chromium.org

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

Patch from Ting-Yuan (Leo) Huang <laszio@chromium.org>.
2016-07-18 20:11:07 -04:00
..
apple/Framework Mac: Add support for in-process crash reporting to Breakpad. 2014-09-15 22:48:18 +00:00
ios Only release current_breakpad_ if it is defined. 2015-10-14 17:35:47 +02:00
linux Recover memory mappings before writing dump on ChromeOS 2016-07-18 20:11:07 -04:00
mac Remove GTM_ENABLE_LEAKS and GTMGarbageCollection 2016-04-21 13:20:17 -07:00
solaris/handler Use stdint types everywhere 2013-03-06 14:04:42 +00:00
windows Add a new argument to specify the minidump type to write on Windows. 2016-06-29 06:48:26 -04:00
minidump_file_writer-inl.h Clean up build for 64 bit. 2010-07-19 20:43:49 +00:00
minidump_file_writer.cc Android: Workaround for ftruncate() issues. 2015-11-05 15:45:01 -08:00
minidump_file_writer.h Fix the documentation for MinidumpFileWriter::Open(). 2014-05-12 19:36:46 +00:00
minidump_file_writer_unittest.cc Turn on more warnings in ios / mac projects. 2012-09-21 07:58:25 +00:00