diff options
author | Elliott Hughes <enh@google.com> | 2014-07-09 12:11:42 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-07-09 12:19:32 -0700 |
commit | e7f18e14a9e9267150e24f0cb8bd8bd52db7946e (patch) | |
tree | d6022db0b559955f463eefdd50ef14c638ba4310 /debuggerd/arm/machine.cpp | |
parent | 6e141aea189769a428a7da6c2206df6d0ed2c69d (diff) | |
download | system_core-e7f18e14a9e9267150e24f0cb8bd8bd52db7946e.tar.gz system_core-e7f18e14a9e9267150e24f0cb8bd8bd52db7946e.tar.bz2 system_core-e7f18e14a9e9267150e24f0cb8bd8bd52db7946e.zip |
Integrate vfp-crasher with crasher.
There's no good reason to separate "fill the integer registers with
recognizable patterns and crash" from "fill the FP registers with recognizable
patterns and crash".
Also remove the incorrect use of ARCH_ARM_HAVE_VFP_D32 rather than try to fix
it.
Change-Id: I3a4a3aca1575de5489314027ae52168997404d79
Diffstat (limited to 'debuggerd/arm/machine.cpp')
-rw-r--r-- | debuggerd/arm/machine.cpp | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/debuggerd/arm/machine.cpp b/debuggerd/arm/machine.cpp index 839d47a8c..82700669c 100644 --- a/debuggerd/arm/machine.cpp +++ b/debuggerd/arm/machine.cpp @@ -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, ®s)) { 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 } |