Files
itgmania212121/stepmania/src/archutils/Unix/CrashHandlerInternal.h
T

53 lines
1.0 KiB
C

#ifndef CRASH_HANDLER_INTERNAL_H
#define CRASH_HANDLER_INTERNAL_H
#include "Backtrace.h"
#define BACKTRACE_MAX_SIZE 1024
struct CrashData
{
enum CrashType
{
/* We received a fatal signal. si and uc are valid. */
SIGNAL,
#if defined(DARWIN)
/* We received a fatal exception. */
OSX_EXCEPTION,
#endif
/* We're forcing a crash (eg. failed ASSERT). */
FORCE_CRASH_THIS_THREAD,
/* Deadlock detected; give a stack trace for two threads. */
FORCE_CRASH_DEADLOCK
} type;
/* Everything except FORCE_CRASH_THIS_THREAD: */
const void *BacktracePointers[BACKTRACE_MAX_SIZE];
/* FORCE_CRASH_DEADLOCK only: */
const void *BacktracePointers2[BACKTRACE_MAX_SIZE];
/* SIGNAL only: */
int signal;
siginfo_t si;
/* OSX_EXCEPTION only: */
int kind;
/* FORCE_CRASH_THIS_THREAD and FORCE_CRASH_DEADLOCK only: */
char reason[256];
};
#define CHILD_MAGIC_PARAMETER "--private-do-crash-handler"
const char *SignalName( int signo );
#if defined(DARWIN)
const char *ExceptionName( int signo );
#endif
#endif