2003-07-27 07:07:45 +00:00
|
|
|
#ifndef CRASH_HANDLER_INTERNAL_H
|
2003-08-02 05:32:00 +00:00
|
|
|
#define CRASH_HANDLER_INTERNAL_H
|
2003-07-27 07:07:45 +00:00
|
|
|
|
2004-03-19 06:56:18 +00:00
|
|
|
#include "Backtrace.h"
|
2004-09-08 07:34:38 +00:00
|
|
|
#define BACKTRACE_MAX_SIZE 128
|
2004-03-19 06:56:18 +00:00
|
|
|
|
|
|
|
|
struct CrashData
|
|
|
|
|
{
|
|
|
|
|
enum CrashType
|
|
|
|
|
{
|
|
|
|
|
/* We received a fatal signal. si and uc are valid. */
|
|
|
|
|
SIGNAL,
|
|
|
|
|
|
|
|
|
|
/* We're forcing a crash (eg. failed ASSERT). */
|
2004-09-08 07:34:38 +00:00
|
|
|
FORCE_CRASH,
|
2004-03-19 06:56:18 +00:00
|
|
|
} type;
|
|
|
|
|
|
2004-03-19 09:25:45 +00:00
|
|
|
/* Everything except FORCE_CRASH_THIS_THREAD: */
|
2004-09-08 07:34:38 +00:00
|
|
|
enum { MAX_BACKTRACE_THREADS = 32 };
|
|
|
|
|
const void *BacktracePointers[MAX_BACKTRACE_THREADS][BACKTRACE_MAX_SIZE];
|
|
|
|
|
char m_ThreadName[MAX_BACKTRACE_THREADS][128];
|
2004-03-19 06:56:18 +00:00
|
|
|
|
|
|
|
|
/* SIGNAL only: */
|
|
|
|
|
int signal;
|
|
|
|
|
siginfo_t si;
|
2004-03-19 08:17:44 +00:00
|
|
|
|
2004-03-20 21:36:10 +00:00
|
|
|
/* FORCE_CRASH_THIS_THREAD and FORCE_CRASH_DEADLOCK only: */
|
2004-03-19 06:56:18 +00:00
|
|
|
char reason[256];
|
|
|
|
|
};
|
|
|
|
|
|
2003-07-27 07:07:45 +00:00
|
|
|
#define CHILD_MAGIC_PARAMETER "--private-do-crash-handler"
|
|
|
|
|
|
2004-03-19 03:13:27 +00:00
|
|
|
const char *SignalName( int signo );
|
|
|
|
|
|
2004-03-19 08:17:44 +00:00
|
|
|
#endif
|