crash_dump: fork a copy of the target's address space.
Reduce the amount of time that a process remains paused by pausing its
threads, fetching their registers, and then performing unwinding on a
copy of its address space. This also works around a kernel change
that's in 4.9 that prevents ptrace from reading memory of processes
that we don't have immediate permissions to ptrace (even if we
previously ptraced them).
Bug: http://b/62112103
Bug: http://b/63989615
Test: treehugger
Change-Id: I7b9cc5dd8f54a354bc61f1bda0d2b7a8a55733c4
diff --git a/debuggerd/Android.bp b/debuggerd/Android.bp
index 17a9f3a..c473e33 100644
--- a/debuggerd/Android.bp
+++ b/debuggerd/Android.bp
@@ -4,9 +4,12 @@
"-Wall",
"-Wextra",
"-Werror",
+ "-Wno-unused-argument",
+ "-Wno-unused-function",
"-Wno-nullability-completeness",
"-Os",
],
+ cpp_std: "gnu++17",
local_include_dirs: ["include"],
}
@@ -73,6 +76,7 @@
whole_static_libs: [
"libasync_safe",
+ "libcutils",
"libdebuggerd",
],
@@ -148,27 +152,6 @@
"libdebuggerd/utility.cpp",
],
- target: {
- android_arm: {
- srcs: ["libdebuggerd/arm/machine.cpp"],
- },
- android_arm64: {
- srcs: ["libdebuggerd/arm64/machine.cpp"],
- },
- android_mips: {
- srcs: ["libdebuggerd/mips/machine.cpp"],
- },
- android_mips64: {
- srcs: ["libdebuggerd/mips64/machine.cpp"],
- },
- android_x86: {
- srcs: ["libdebuggerd/x86/machine.cpp"],
- },
- android_x86_64: {
- srcs: ["libdebuggerd/x86_64/machine.cpp"],
- },
- },
-
local_include_dirs: ["libdebuggerd/include"],
export_include_dirs: ["libdebuggerd/include"],
@@ -193,7 +176,6 @@
"libdebuggerd/test/elf_fake.cpp",
"libdebuggerd/test/log_fake.cpp",
"libdebuggerd/test/open_files_list_test.cpp",
- "libdebuggerd/test/ptrace_fake.cpp",
"libdebuggerd/test/tombstone_test.cpp",
],
@@ -218,6 +200,7 @@
static_libs: [
"libdebuggerd",
+ "libunwindstack",
],
local_include_dirs: [
@@ -264,6 +247,7 @@
"libbase",
"liblog",
"libprocinfo",
+ "libunwindstack",
],
}