Contact proper debuggerd when crashing.
Make the request structure match the new structure found in debuggerd code. On 64 bit systems, make sure that the 32 bit compiled linker is contacted. Bug: https://code.google.com/p/android/issues/detail?id=97024 Change-Id: I675b8ff222fcf836b05de4e9b5976ff91ca929bf
This commit is contained in:
parent
ffad8df672
commit
151da68100
@ -36,6 +36,10 @@ LOCAL_CONLYFLAGS += \
|
||||
LOCAL_CPPFLAGS += \
|
||||
-std=gnu++11 \
|
||||
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
LOCAL_CPPFLAGS += -DTARGET_IS_64_BIT
|
||||
endif
|
||||
|
||||
# We need to access Bionic private headers in the linker.
|
||||
LOCAL_CFLAGS += -I$(LOCAL_PATH)/../libc/
|
||||
|
||||
|
@ -41,8 +41,10 @@
|
||||
|
||||
extern "C" int tgkill(int tgid, int tid, int sig);
|
||||
|
||||
#if __LP64__
|
||||
#define DEBUGGER_SOCKET_NAME "android:debuggerd64"
|
||||
// Crash actions have to be sent to the proper debuggerd.
|
||||
// On 64 bit systems, the 32 bit debuggerd is named differently.
|
||||
#if defined(TARGET_IS_64_BIT) && !defined(__LP64__)
|
||||
#define DEBUGGER_SOCKET_NAME "android:debuggerd32"
|
||||
#else
|
||||
#define DEBUGGER_SOCKET_NAME "android:debuggerd"
|
||||
#endif
|
||||
@ -57,15 +59,10 @@ enum debugger_action_t {
|
||||
};
|
||||
|
||||
/* message sent over the socket */
|
||||
struct debugger_msg_t {
|
||||
// version 1 included:
|
||||
debugger_action_t action;
|
||||
struct __attribute__((packed)) debugger_msg_t {
|
||||
int32_t action;
|
||||
pid_t tid;
|
||||
|
||||
// version 2 added:
|
||||
uintptr_t abort_msg_address;
|
||||
|
||||
// version 3 added:
|
||||
uint64_t abort_msg_address;
|
||||
int32_t original_si_code;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user