aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux/microdump_writer
diff options
context:
space:
mode:
authorTing-Yuan (Leo) Huang <laszio@chromium.org>2016-07-18 20:11:07 -0400
committerMark Mentovai <mark@chromium.org>2016-07-18 20:11:07 -0400
commit41b91d064ecda6cbcc1eb9b8fe1a1f999b6188b7 (patch)
treeabae7398ee8dce553bcedc3602cc76afd955e4b6 /src/client/linux/microdump_writer
parent[Android] Guard some NDK workarounds by major version. (diff)
downloadbreakpad-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