am 0dd3fe22: am b237f5fb: am 5acbb9bc: am b5186598: Merge "Integrate vfp-crasher with crasher."

* commit '0dd3fe220b3c7d7013871ec4b1f7875586f4d719':
  Integrate vfp-crasher with crasher.
This commit is contained in:
Elliott Hughes 2014-07-14 01:56:56 +00:00 committed by Android Git Automerger
commit 3a03e61ccf
8 changed files with 75 additions and 161 deletions

View file

@ -22,13 +22,6 @@ LOCAL_CPPFLAGS := \
-Wunused \
-Werror \
ifeq ($(ARCH_ARM_HAVE_VFP),true)
LOCAL_CFLAGS_arm += -DWITH_VFP
endif # ARCH_ARM_HAVE_VFP
ifeq ($(ARCH_ARM_HAVE_VFP_D32),true)
LOCAL_CFLAGS_arm += -DWITH_VFP_D32
endif # ARCH_ARM_HAVE_VFP_D32
LOCAL_SHARED_LIBRARIES := \
libbacktrace \
libcutils \
@ -65,30 +58,3 @@ LOCAL_MODULE_STEM_64 := crasher64
LOCAL_MULTILIB := both
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
ifeq ($(ARCH_ARM_HAVE_VFP),true)
LOCAL_MODULE_TARGET_ARCH += arm
LOCAL_SRC_FILES_arm := arm/vfp.S
LOCAL_CFLAGS_arm += -DWITH_VFP
ifeq ($(ARCH_ARM_HAVE_VFP_D32),true)
LOCAL_CFLAGS_arm += -DWITH_VFP_D32
endif # ARCH_ARM_HAVE_VFP_D32
endif # ARCH_ARM_HAVE_VFP == true
LOCAL_CFLAGS += -Werror
LOCAL_SRC_FILES_arm64 := arm64/vfp.S
LOCAL_MODULE_TARGET_ARCH += arm64
LOCAL_SRC_FILES := vfp-crasher.c
LOCAL_MODULE := vfp-crasher
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES := libcutils liblog libc
LOCAL_MODULE_STEM_32 := vfp-crasher
LOCAL_MODULE_STEM_64 := vfp-crasher64
LOCAL_MULTILIB := both
include $(BUILD_EXECUTABLE)

View file

@ -1,8 +1,5 @@
.globl crash1
.type crash1, %function
.globl crashnostack
.type crashnostack, %function
crash1:
ldr r0, =0xa5a50000
ldr r1, =0xa5a50001
@ -18,11 +15,46 @@ crash1:
ldr r11, =0xa5a50011
ldr r12, =0xa5a50012
fconstd d0, #0
fconstd d1, #1
fconstd d2, #2
fconstd d3, #3
fconstd d4, #4
fconstd d5, #5
fconstd d6, #6
fconstd d7, #7
fconstd d8, #8
fconstd d9, #9
fconstd d10, #10
fconstd d11, #11
fconstd d12, #12
fconstd d13, #13
fconstd d14, #14
fconstd d15, #15
fconstd d16, #16
fconstd d17, #17
fconstd d18, #18
fconstd d19, #19
fconstd d20, #20
fconstd d21, #21
fconstd d22, #22
fconstd d23, #23
fconstd d24, #24
fconstd d25, #25
fconstd d26, #26
fconstd d27, #27
fconstd d28, #28
fconstd d29, #29
fconstd d30, #30
fconstd d31, #31
mov lr, #0
ldr lr, [lr]
b .
.globl crashnostack
.type crashnostack, %function
crashnostack:
mov sp, #0
mov r0, #0

View file

@ -27,21 +27,8 @@
#include "../utility.h"
#include "../machine.h"
// enable to dump memory pointed to by every register
#define DUMP_MEMORY_FOR_ALL_REGISTERS 1
#ifdef WITH_VFP
#ifdef WITH_VFP_D32
#define NUM_VFP_REGS 32
#else
#define NUM_VFP_REGS 16
#endif
#endif
// If configured to do so, dump memory around *all* registers
// for the crashing thread.
void dump_memory_and_code(log_t* log, pid_t tid) {
struct pt_regs regs;
pt_regs regs;
if (ptrace(PTRACE_GETREGS, tid, 0, &regs)) {
return;
}
@ -73,7 +60,7 @@ void dump_memory_and_code(log_t* log, pid_t tid) {
}
void dump_registers(log_t* log, pid_t tid) {
struct pt_regs r;
pt_regs r;
if (ptrace(PTRACE_GETREGS, tid, 0, &r)) {
_LOG(log, logtype::REGISTERS, "cannot get registers: %s\n", strerror(errno));
return;
@ -93,19 +80,15 @@ void dump_registers(log_t* log, pid_t tid) {
static_cast<uint32_t>(r.ARM_lr), static_cast<uint32_t>(r.ARM_pc),
static_cast<uint32_t>(r.ARM_cpsr));
#ifdef WITH_VFP
struct user_vfp vfp_regs;
int i;
user_vfp vfp_regs;
if (ptrace(PTRACE_GETVFPREGS, tid, 0, &vfp_regs)) {
_LOG(log, logtype::REGISTERS, "cannot get registers: %s\n", strerror(errno));
return;
}
for (i = 0; i < NUM_VFP_REGS; i += 2) {
for (size_t i = 0; i < 32; i += 2) {
_LOG(log, logtype::REGISTERS, " d%-2d %016llx d%-2d %016llx\n",
i, vfp_regs.fpregs[i], i+1, vfp_regs.fpregs[i+1]);
}
_LOG(log, logtype::REGISTERS, " scr %08lx\n", vfp_regs.fpscr);
#endif
}

View file

@ -1,43 +0,0 @@
.text
.align 2
.global crash
.type crash, %function
crash:
fconstd d0, #0
fconstd d1, #1
fconstd d2, #2
fconstd d3, #3
fconstd d4, #4
fconstd d5, #5
fconstd d6, #6
fconstd d7, #7
fconstd d8, #8
fconstd d9, #9
fconstd d10, #10
fconstd d11, #11
fconstd d12, #12
fconstd d13, #13
fconstd d14, #14
fconstd d15, #15
#ifdef WITH_VFP_D32
fconstd d16, #16
fconstd d17, #17
fconstd d18, #18
fconstd d19, #19
fconstd d20, #20
fconstd d21, #21
fconstd d22, #22
fconstd d23, #23
fconstd d24, #24
fconstd d25, #25
fconstd d26, #26
fconstd d27, #27
fconstd d28, #28
fconstd d29, #29
fconstd d30, #30
fconstd d31, #31
#endif
mov r0, #0
str r0, [r0]
bx lr

View file

@ -1,8 +1,5 @@
.globl crash1
.type crash1, %function
.globl crashnostack
.type crashnostack, %function
crash1:
ldr x0, =0xa5a50000
ldr x1, =0xa5a50001
@ -35,11 +32,46 @@ crash1:
ldr x28, =0xa5a50028
ldr x29, =0xa5a50029
fmov d0, -1.0 // -1 is more convincing than 0.
fmov d1, 1.0
fmov d2, 2.0
fmov d3, 3.0
fmov d4, 4.0
fmov d5, 5.0
fmov d6, 6.0
fmov d7, 7.0
fmov d8, 8.0
fmov d9, 9.0
fmov d10, 10.0
fmov d11, 11.0
fmov d12, 12.0
fmov d13, 13.0
fmov d14, 14.0
fmov d15, 15.0
fmov d16, 16.0
fmov d17, 17.0
fmov d18, 18.0
fmov d19, 19.0
fmov d20, 20.0
fmov d21, 21.0
fmov d22, 22.0
fmov d23, 23.0
fmov d24, 24.0
fmov d25, 25.0
fmov d26, 26.0
fmov d27, 27.0
fmov d28, 28.0
fmov d29, 29.0
fmov d30, 30.0
fmov d31, 31.0
mov x30, xzr
ldr x30, [x30]
b .
.globl crashnostack
.type crashnostack, %function
crashnostack:
mov x0, xzr
add sp, x0, xzr

View file

@ -30,13 +30,6 @@
#include "../utility.h"
#include "../machine.h"
/* enable to dump memory pointed to by every register */
#define DUMP_MEMORY_FOR_ALL_REGISTERS 1
/*
* If configured to do so, dump memory around *all* registers
* for the crashing thread.
*/
void dump_memory_and_code(log_t* log, pid_t tid) {
struct user_pt_regs regs;
struct iovec io;

View file

@ -1,42 +0,0 @@
.text
.align 2
.global crash
.type crash, %function
crash:
fmov d0, XZR
fmov d1, 1.0
fmov d2, 2.0
fmov d3, 3.0
fmov d4, 4.0
fmov d5, 5.0
fmov d6, 6.0
fmov d7, 7.0
fmov d8, 8.0
fmov d9, 9.0
fmov d10, 10.0
fmov d11, 11.0
fmov d12, 12.0
fmov d13, 13.0
fmov d14, 14.0
fmov d15, 15.0
fmov d16, 16.0
fmov d17, 17.0
fmov d18, 18.0
fmov d19, 19.0
fmov d20, 20.0
fmov d21, 21.0
fmov d22, 22.0
fmov d23, 23.0
fmov d24, 24.0
fmov d25, 25.0
fmov d26, 26.0
fmov d27, 27.0
fmov d28, 28.0
fmov d29, 29.0
fmov d30, 30.0
fmov d31, 31.0
mov x0, xzr
str x0, [x0]
br x30

View file

@ -1,7 +0,0 @@
int main()
{
extern void crash(void);
crash();
return 0;
}