|
OpenTTD Source 20251116-master-g21329071df
|
OSX implementation for the crash logger. More...
Public Member Functions | |
| CrashLogOSX (int signum) | |
| A crash log is always generated by signal. | |
| void | DisplayCrashDialog () const |
| Show a dialog with the crash information. | |
Public Member Functions inherited from CrashLog | |
| virtual | ~CrashLog ()=default |
| Stub destructor to silence some compilers. | |
| void | FillCrashLog () |
| Fill the crash log buffer with all data of a crash log. | |
| void | PrintCrashLog () const |
| bool | WriteCrashLog () |
| Write the crash log to a file. | |
| virtual bool | WriteCrashDump () |
| Write the (crash) dump to a file. | |
| bool | WriteSavegame () |
| Write the (crash) savegame to a file. | |
| bool | WriteScreenshot () |
| Write the (crash) screenshot to a file. | |
| void | SendSurvey () const |
| Send the survey result, noting it was a crash. | |
| void | MakeCrashLog () |
| Makes the crash log, writes it to a file and then subsequently tries to make a crash dump and crash savegame. | |
Data Fields | |
| jmp_buf | internal_fault_jmp_buf |
| Buffer to track the long jump set setup. | |
| bool | try_execute_active = false |
| Whether we are in a TryExecute block. | |
Data Fields inherited from CrashLog | |
| nlohmann::json | survey |
| std::string | crashlog_filename |
| std::string | crashdump_filename |
| std::string | savegame_filename |
| std::string | screenshot_filename |
Static Public Attributes | |
| static CrashLogOSX * | current = nullptr |
| Points to the current crash log. | |
Private Member Functions | |
| void | SurveyCrash (nlohmann::json &survey) const override |
| Convert system crash reason to JSON. | |
| void | SurveyStacktrace (nlohmann::json &survey) const override |
| Convert stacktrace to JSON. | |
| bool | TryExecute (std::string_view section_name, std::function< bool()> &&func) override |
| Execute the func() and return its value. | |
Private Attributes | |
| int | signum |
| Signal that has been thrown. | |
Additional Inherited Members | |
Static Public Member Functions inherited from CrashLog | |
| static void | InitialiseCrashLog () |
| Initialiser for crash logs; do the appropriate things so crashes are handled by our crash handler instead of returning straight to the OS. | |
| static void | InitThread () |
| Prepare crash log handler for a newly started thread. | |
| static void | SetErrorMessage (const std::string &message) |
| Sets a message for the error message handler. | |
| static void | AfterCrashLogCleanup () |
| Try to close the sound/video stuff so it doesn't keep lingering around incorrect video states or so, e.g. | |
Protected Member Functions inherited from CrashLog | |
| std::string | CreateFileName (std::string_view ext, bool with_dir=true) const |
| Create a timestamped filename. | |
OSX implementation for the crash logger.
Definition at line 48 of file crashlog_osx.cpp.
|
inline |
A crash log is always generated by signal.
| signum | the signal that was caused by the crash. |
Definition at line 118 of file crashlog_osx.cpp.
|
inline |
Show a dialog with the crash information.
Definition at line 121 of file crashlog_osx.cpp.
References CrashLog::message, and ShowMacDialog().
Referenced by HandleCrash().
|
inlineoverrideprivatevirtual |
Convert system crash reason to JSON.
| survey | The JSON object. |
Implements CrashLog.
Definition at line 52 of file crashlog_osx.cpp.
References signum.
|
inlineoverrideprivatevirtual |
Convert stacktrace to JSON.
| survey | The JSON object. |
Implements CrashLog.
Definition at line 58 of file crashlog_osx.cpp.
References lengthof.
|
inlineoverrideprivatevirtual |
Execute the func() and return its value.
If any exception / signal / crash happens, catch it and return false. This function should, in theory, never not return, even in the worst conditions.
| section_name | The name of the section to be executed. Printed when a crash happens. |
| func | The function to call. |
Implements CrashLog.
Definition at line 88 of file crashlog_osx.cpp.
References _signals_to_handle, internal_fault_jmp_buf, signum, and try_execute_active.
|
static |
Points to the current crash log.
Definition at line 143 of file crashlog_osx.cpp.
Referenced by HandleCrash(), and HandleInternalCrash().
| jmp_buf CrashLogOSX::internal_fault_jmp_buf |
Buffer to track the long jump set setup.
Definition at line 137 of file crashlog_osx.cpp.
Referenced by TryExecute().
|
private |
Signal that has been thrown.
Definition at line 50 of file crashlog_osx.cpp.
Referenced by SurveyCrash(), and TryExecute().
| bool CrashLogOSX::try_execute_active = false |
Whether we are in a TryExecute block.
Definition at line 140 of file crashlog_osx.cpp.
Referenced by TryExecute().