diff options
author | ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2008-03-18 16:10:10 +0000 |
---|---|---|
committer | ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2008-03-18 16:10:10 +0000 |
commit | dd2ff4a21c57672170eb14ccc5142efd7d92f3f1 (patch) | |
tree | 0d8ced3d3cd41773a89aae46a9b269ebd29935a1 /src/client/solaris/handler/solaris_lwp.h | |
parent | Issue 245: refactoring minidump_format.h into architecture & platform specifi... (diff) | |
download | breakpad-dd2ff4a21c57672170eb14ccc5142efd7d92f3f1.tar.xz |
issue 223 - Fixes for SOlaris handler during integration with Firefox. patch by Alfred Peng, r=mento,me
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@250 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/solaris/handler/solaris_lwp.h')
-rw-r--r-- | src/client/solaris/handler/solaris_lwp.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/client/solaris/handler/solaris_lwp.h b/src/client/solaris/handler/solaris_lwp.h index d859111b..0914cfcd 100644 --- a/src/client/solaris/handler/solaris_lwp.h +++ b/src/client/solaris/handler/solaris_lwp.h @@ -32,9 +32,18 @@ #ifndef CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__ #define CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__ +#if defined(sparc) || defined(__sparc) +#define TARGET_CPU_SPARC 1 +#elif defined(i386) || defined(__i386) +#define TARGET_CPU_X86 1 +#else +#error "cannot determine cpu type" +#endif + #include <signal.h> #include <stdint.h> #include <sys/user.h> +#include <ucontext.h> #ifndef _KERNEL #define _KERNEL @@ -134,6 +143,13 @@ class SolarisLwp { // Get the bottom of the stack from esp. uintptr_t GetLwpStackBottom(uintptr_t current_esp) const; + // Finds a signal context on the stack given the ebp of our signal handler. + bool FindSigContext(uintptr_t sighandler_ebp, ucontext_t **sig_ctx); + + private: + // Check if the address is a valid virtual address. + bool IsAddressMapped(uintptr_t address) const; + private: // The pid of the process we are listing lwps. int pid_; |