summaryrefslogtreecommitdiff
path: root/indra/llcommon/llapp.h
diff options
context:
space:
mode:
authorAndrew A. de Laix <alain@lindenlab.com>2010-05-21 09:38:29 -0700
committerAndrew A. de Laix <alain@lindenlab.com>2010-05-21 09:38:29 -0700
commit719edddf0498752a0295502d62710823d1a72cc7 (patch)
tree611f7d53942e8fedb5f732a69fe7a3164ecdec7d /indra/llcommon/llapp.h
parent196420259fe0001749de0efcbccb184c1e8fb47c (diff)
Switch Darwin to use breakpad minidump rather than os generated crash stack.
Diffstat (limited to 'indra/llcommon/llapp.h')
-rw-r--r--indra/llcommon/llapp.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/indra/llcommon/llapp.h b/indra/llcommon/llapp.h
index e5b8edf9c3..cd17532203 100644
--- a/indra/llcommon/llapp.h
+++ b/indra/llcommon/llapp.h
@@ -38,6 +38,8 @@
#include "llsd.h"
#include "lloptioninterface.h"
+#include "exception_handler.h"
+
// Forward declarations
template <typename Type> class LLAtomic32;
typedef LLAtomic32<U32> LLAtomicU32;
@@ -228,6 +230,8 @@ public:
void setErrorHandler(LLAppErrorHandler handler);
void setSyncErrorHandler(LLAppErrorHandler handler);
+ static void runErrorHandler(); // run shortly after we detect an error, ran in the relatively robust context of the LLErrorThread - preferred.
+ static void runSyncErrorHandler(); // run IMMEDIATELY when we get an error, ran in the context of the faulting thread.
//@}
#if !LL_WINDOWS
@@ -265,6 +269,9 @@ public:
typedef std::map<std::string, std::string> string_map;
string_map mOptionMap; // Contains all command-line options and arguments in a map
+ // Contains the path to minidump file after a crash.
+ static const U32 MAX_MINDUMP_PATH_LENGTH = 256;
+ char minidump_path[MAX_MINDUMP_PATH_LENGTH];
protected:
static void setStatus(EAppStatus status); // Use this to change the application status.
@@ -286,8 +293,6 @@ protected:
private:
void startErrorThread();
- static void runErrorHandler(); // run shortly after we detect an error, ran in the relatively robust context of the LLErrorThread - preferred.
- static void runSyncErrorHandler(); // run IMMEDIATELY when we get an error, ran in the context of the faulting thread.
// *NOTE: On Windows, we need a routine to reset the structured
// exception handler when some evil driver has taken it over for
@@ -315,6 +320,8 @@ private:
private:
// the static application instance if it was created.
static LLApp* sApplication;
+
+ google_breakpad::ExceptionHandler * mExceptionHandler;
#if !LL_WINDOWS