diff options
author | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-03-02 00:39:48 +0000 |
---|---|---|
committer | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-03-02 00:39:48 +0000 |
commit | de545c09d0363e6964822ec92529a80feaca152d (patch) | |
tree | ca6411127fed322c8f789a6b907ca93b9022b353 /src/client/linux/minidump_writer/linux_dumper.h | |
parent | Breakpad Linux symbol dumper: Handle programs linked with --gc-sections. (diff) | |
download | breakpad-de545c09d0363e6964822ec92529a80feaca152d.tar.xz |
ARM support, with some build system changes to support x86-64, arm, and i386 in an autoconf style build in Linux. The O2 build for the unit tests is still broken but I'm checking this in to unblock people
A=nealsid
R=ajwong, hannahtang, ted.mielczarek
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@541 4c0a9323-5329-0410-9bdc-e9ce6186880e
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 }; |