OpenTTD Source  20241108-master-g80f628063a
crashlog_osx.cpp File Reference

OS X crash log handler. More...

#include "../../stdafx.h"
#include "../../crashlog.h"
#include "../../fileio_func.h"
#include "../../string_func.h"
#include "../../gamelog.h"
#include "../../saveload/saveload.h"
#include "../../video/video_driver.hpp"
#include "macos.h"
#include <setjmp.h>
#include <signal.h>
#include <mach-o/arch.h>
#include <dlfcn.h>
#include <cxxabi.h>
#include <execinfo.h>
#include "../../safeguards.h"

Go to the source code of this file.

Data Structures

class  CrashLogOSX
 OSX implementation for the crash logger. More...
 

Macros

#define IS_ALIGNED(addr)   (((uintptr_t)(addr) & 0xf) == 0)
 
#define MAX_STACK_FRAMES   64
 

Functions

static sigset_t SetSignals (void(*handler)(int))
 Set a signal handler for all signals we want to capture. More...
 
static void CDECL HandleInternalCrash (int)
 Entry point for a crash that happened during the handling of a crash.
 
static void CDECL HandleCrash (int signum)
 Entry point for the crash handler. More...
 

Variables

static constexpr int _signals_to_handle [] = { SIGSEGV, SIGABRT, SIGFPE, SIGBUS, SIGILL, SIGSYS, SIGQUIT }
 The signals we want our crash handler to handle.
 

Detailed Description

OS X crash log handler.

Definition in file crashlog_osx.cpp.

Function Documentation

◆ HandleCrash()

static void CDECL HandleCrash ( int  signum)
static

◆ SetSignals()

static sigset_t SetSignals ( void(*)(int)  handler)
static

Set a signal handler for all signals we want to capture.

Parameters
handlerThe handler to use.
Returns
sigset_t A sigset_t containing all signals we want to capture.

Definition at line 154 of file crashlog_osx.cpp.

References _signals_to_handle.

Referenced by HandleCrash(), and CrashLog::InitialiseCrashLog().