diff options
author | mkrebs@chromium.org <mkrebs@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2012-03-30 23:53:32 +0000 |
---|---|---|
committer | mkrebs@chromium.org <mkrebs@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2012-03-30 23:53:32 +0000 |
commit | 78373e45c5f29416ce9e2f092f92b57cfefe88ed (patch) | |
tree | 46c1cb9aa82a8231d4e0c1cf6c1b50a58f1484a6 /src/client/linux/minidump_writer/linux_dumper.h | |
parent | Fix GetMainModule() to properly get first module (diff) | |
download | breakpad-78373e45c5f29416ce9e2f092f92b57cfefe88ed.tar.xz |
Fix for putting main module as first one in minidump
The first module in a minidump is expected to be for the main executable.
We used to assume that /proc/<pid>/maps always showed that one first, but in
some cases that is no longer true (see comment #7 of the bug). So this
change makes use of the entry point stored in auxv to make sure we put the
correct module first.
BUG=chromium-os:25355
TEST=Ran Breakpad tests
Review URL: https://breakpad.appspot.com/366002
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@942 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/linux/minidump_writer/linux_dumper.h')
-rw-r--r-- | src/client/linux/minidump_writer/linux_dumper.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/client/linux/minidump_writer/linux_dumper.h b/src/client/linux/minidump_writer/linux_dumper.h index 45779699..42b2a991 100644 --- a/src/client/linux/minidump_writer/linux_dumper.h +++ b/src/client/linux/minidump_writer/linux_dumper.h @@ -178,7 +178,9 @@ class LinuxDumper { // [vdso], but we can't guarantee that it's the only virtual dynamic // shared object. Parsing the auxilary vector for AT_SYSINFO_EHDR // is the safest way to go.) - void* FindBeginningOfLinuxGateSharedLibrary(const pid_t pid) const; + void* FindBeginningOfLinuxGateSharedLibrary(pid_t pid) const; + // Utility method to find the entry point location. + void* FindEntryPoint(pid_t pid) const; uintptr_t crash_address() const { return crash_address_; } void set_crash_address(uintptr_t crash_address) { |