OpenTTD Source: src/os/macosx/crashlog_osx.cpp File Reference

OpenTTD Source 14.0-beta3

Data Structures | Macros | Functions | Variables
crashlog_osx.cpp File Reference
`#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

Entry point for the crash handler.

Parameters

  signum | the signal that caused us to crash.

Definition at line 196 of file crashlog_osx.cpp.

References _gamelog, CrashLog::AfterCrashLogCleanup(), CrashLogOSX::current, CrashLogOSX::DisplayCrashDialog(), VideoDriver::GetInstance(), HandleInternalCrash(), CrashLog::MakeCrashLog(), SaveloadCrashWithMissingNewGRFs(), SetSignals(), ShowMacDialog(), and Gamelog::TestEmergency().

Referenced by CrashLog::InitialiseCrashLog().

## ◆ SetSignals()

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

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

Parameters

  handler | The 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().