breakpad/src/client/linux
Peter Collingbourne 9b23ca3a7c Move main executable handling out of procmaps parser loop.
If the mapping for the main executable needed to be merged (for
example, if it was linked with lld and therefore contains an r mapping
followed by an r/x mapping), we would never reach the code that makes
it the first module. Handle that situation by moving that code into
a separate loop.

This fixes an issue where breakpad_unittests fails on Android devices
when linked with lld. It appears that the glibc dynamic loader
happens to always load executables (or at least the executables that
we create) at a lower address than DSOs, so we never hit this bug on
desktop Linux.

Testing: "make check" with both gold and lld as linker. Also
breakpad_unittests when patched into Chromium on Linux (lld) and
Android (gold and lld).

Bug: chromium:469376
Change-Id: I6329e4afd2f1bf44c25a6c3e684495e21dba83a6
Reviewed-on: https://chromium-review.googlesource.com/722286
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2017-10-17 20:19:03 +00:00
..
crash_generation crash_generation: fix bad call to close 2016-12-09 15:56:26 +00:00
data The symbol files necessary for the processor to walk stacks on Linux that have __kernel_vsyscall at innermost frame. Special symbol files ar eneeded because EBP does not point to the frame when a thread is inside a system call. 2009-06-25 21:36:39 +00:00
dump_writer_common Rename src/common/memory.h to memory_allocator.h. 2017-10-17 14:02:43 +00:00
handler Rename src/common/memory.h to memory_allocator.h. 2017-10-17 14:02:43 +00:00
log [microdump] Move microdump writes to the crash ring-buffer log 2015-08-17 10:32:26 +00:00
microdump_writer Rename src/common/memory.h to memory_allocator.h. 2017-10-17 14:02:43 +00:00
minidump_writer Move main executable handling out of procmaps parser loop. 2017-10-17 20:19:03 +00:00
sender drop bundled gflags from the checkout 2017-09-13 23:38:29 +00:00