mirror of
https://github.com/yuzu-mirror/breakpad.git
synced 2026-03-01 18:43:49 +01:00
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>. |
||
|---|---|---|
| .. | ||
| apple/Framework | ||
| ios | ||
| linux | ||
| mac | ||
| solaris/handler | ||
| windows | ||
| minidump_file_writer-inl.h | ||
| minidump_file_writer.cc | ||
| minidump_file_writer.h | ||
| minidump_file_writer_unittest.cc | ||