mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r1524) -"Feature": when windows exception tracker is enabled (release builds) and the game crashes for any reason any active log file is closed first. This ensures the log file and ingame debug messages can be used to debug a problem. Any *nix versions are welcome
This commit is contained in:
parent
ef3b9161f8
commit
732c362dea
|
@ -595,20 +595,28 @@ DEF_CONSOLE_CMD(ConReturn)
|
|||
/* **************************** */
|
||||
/* default console commands */
|
||||
/* **************************** */
|
||||
|
||||
DEF_CONSOLE_CMD(ConScript)
|
||||
bool CloseConsoleLogIfActive()
|
||||
{
|
||||
extern FILE* _iconsole_output_file;
|
||||
if (_iconsole_output_file != NULL) {
|
||||
IConsolePrintF(_iconsole_color_default, "file output complete");
|
||||
fclose(_iconsole_output_file);
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
DEF_CONSOLE_CMD(ConScript)
|
||||
{
|
||||
extern FILE* _iconsole_output_file;
|
||||
if (!CloseConsoleLogIfActive()) {
|
||||
if (argc < 2) return NULL;
|
||||
IConsolePrintF(_iconsole_color_default, "file output started to: %s",
|
||||
argv[1]);
|
||||
IConsolePrintF(_iconsole_color_default, "file output started to: %s", argv[1]);
|
||||
_iconsole_output_file = fopen(argv[1], "ab");
|
||||
if (_iconsole_output_file == NULL) IConsoleError("could not open file");
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
10
win32.c
10
win32.c
|
@ -1337,6 +1337,8 @@ static void Handler2()
|
|||
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(100), NULL, CrashDialogFunc);
|
||||
}
|
||||
|
||||
extern bool CloseConsoleLogIfActive();
|
||||
|
||||
static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep)
|
||||
{
|
||||
char *output;
|
||||
|
@ -1442,13 +1444,17 @@ static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep)
|
|||
}
|
||||
}
|
||||
|
||||
/* Close any possible log files */
|
||||
CloseConsoleLogIfActive();
|
||||
|
||||
if (_safe_esp) {
|
||||
ep->ContextRecord->Eip = (DWORD)Handler2;
|
||||
ep->ContextRecord->Esp = (DWORD)_safe_esp;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
} else {
|
||||
return EXCEPTION_EXECUTE_HANDLER;
|
||||
}
|
||||
|
||||
|
||||
return EXCEPTION_EXECUTE_HANDLER;
|
||||
}
|
||||
|
||||
static void Win32InitializeExceptions()
|
||||
|
|
Loading…
Reference in New Issue