diff options
Diffstat (limited to 'src/client/linux/minidump_writer/linux_dumper.h')
-rw-r--r-- | src/client/linux/minidump_writer/linux_dumper.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/client/linux/minidump_writer/linux_dumper.h b/src/client/linux/minidump_writer/linux_dumper.h index 3e8869b5..7a4cd3a3 100644 --- a/src/client/linux/minidump_writer/linux_dumper.h +++ b/src/client/linux/minidump_writer/linux_dumper.h @@ -44,7 +44,7 @@ namespace google_breakpad { typedef typeof(((struct user*) 0)->u_debugreg[0]) debugreg_t; // Typedef for our parsing of the auxv variables in /proc/pid/auxv. -#if defined(__i386) +#if defined(__i386) || defined(__ARM_EABI__) typedef Elf32_auxv_t elf_aux_entry; #elif defined(__x86_64__) typedef Elf64_auxv_t elf_aux_entry; @@ -64,16 +64,20 @@ struct ThreadInfo { const void* stack; // pointer to the stack area size_t stack_len; // length of the stack to copy + +#if defined(__i386) || defined(__x86_64) user_regs_struct regs; user_fpregs_struct fpregs; + static const unsigned kNumDebugRegisters = 8; + debugreg_t dregs[8]; #if defined(__i386) user_fpxregs_struct fpxregs; -#endif - -#if defined(__i386) || defined(__x86_64) +#endif // defined(__i386) - static const unsigned kNumDebugRegisters = 8; - debugreg_t dregs[8]; +#elif defined(__ARM_EABI__) + // Mimicking how strace does this(see syscall.c, search for GETREGS) + struct user_regs regs; + struct user_fpregs fpregs; #endif }; @@ -141,7 +145,7 @@ class LinuxDumper { mutable PageAllocator allocator_; - bool threads_suspened_; + bool threads_suspended_; wasteful_vector<pid_t> threads_; // the ids of all the threads wasteful_vector<MappingInfo*> mappings_; // info from /proc/<pid>/maps }; |