diff options
author | Ting-Yuan (Leo) Huang <laszio@chromium.org> | 2016-07-18 20:11:07 -0400 |
---|---|---|
committer | Mark Mentovai <mark@chromium.org> | 2016-07-18 20:11:07 -0400 |
commit | 41b91d064ecda6cbcc1eb9b8fe1a1f999b6188b7 (patch) | |
tree | abae7398ee8dce553bcedc3602cc76afd955e4b6 /src/client/linux/microdump_writer | |
parent | [Android] Guard some NDK workarounds by major version. (diff) | |
download | breakpad-41b91d064ecda6cbcc1eb9b8fe1a1f999b6188b7.tar.xz |
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>.
Diffstat (limited to 'src/client/linux/microdump_writer')
0 files changed, 0 insertions, 0 deletions