aboutsummaryrefslogtreecommitdiff
path: root/src/client/linux/microdump_writer
diff options
context:
space:
mode:
authorrmcilroy@chromium.org <rmcilroy@chromium.org>2015-06-19 16:30:42 +0000
committerrmcilroy@chromium.org <rmcilroy@chromium.org>2015-06-19 16:30:42 +0000
commit8785c0cb8fc1ccfb20c143026c5fbb8361354c09 (patch)
treec928423f412adfc0c186dbeb9ce9a742102f305d /src/client/linux/microdump_writer
parentupdate more ignore files (diff)
downloadbreakpad-8785c0cb8fc1ccfb20c143026c5fbb8361354c09.tar.xz
Update breakpad for Android packed relocations.
Shared libraries containing Android packed relocations have a load bias that differs from the start address in /proc/$$/maps. Current breakpad assumes that the load bias and mapping start address are the same. Fixed by changing the client to detect the presence of Android packed relocations in the address space of a loaded library, and adjusting the stored mapping start address of any that are packed so that it contains the linker's load bias. For this to work properly, it is important that the non-packed library is symbolized for breakpad. Either packed or non-packed libraries may be run on the device; the client detects which has been loaded by the linker. BUG=499747 R=primiano@chromium.org, rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1189823002. Patch from Simon Baldwin <simonb@chromium.org>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1459 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/linux/microdump_writer')
-rw-r--r--src/client/linux/microdump_writer/microdump_writer.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
index f45925fe..247387e2 100644
--- a/src/client/linux/microdump_writer/microdump_writer.cc
+++ b/src/client/linux/microdump_writer/microdump_writer.cc
@@ -86,7 +86,7 @@ class MicrodumpWriter {
// try to not crash.
if (!dumper_->Init() || !log_line_)
return false;
- return dumper_->ThreadsSuspend();
+ return dumper_->ThreadsSuspend() && dumper_->LateInit();
}
bool Dump() {