@@ -3141,6 +3141,18 @@ DEF_CONSOLE_CMD(ConSpriteCacheStats)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEF_CONSOLE_CMD(ConDumpVersion)
|
||||||
|
{
|
||||||
|
if (argc == 0) {
|
||||||
|
IConsoleHelp("Dump version info");
|
||||||
|
}
|
||||||
|
|
||||||
|
char buffer[65536];
|
||||||
|
CrashLog::VersionInfoLog(buffer, lastof(buffer));
|
||||||
|
PrintLineByLine(buffer);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
DEF_CONSOLE_CMD(ConCheckCaches)
|
DEF_CONSOLE_CMD(ConCheckCaches)
|
||||||
{
|
{
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
@@ -3969,6 +3981,7 @@ void IConsoleStdLibRegister()
|
|||||||
IConsole::CmdRegister("dump_grf_cargo_tables", ConDumpGrfCargoTables, nullptr, true);
|
IConsole::CmdRegister("dump_grf_cargo_tables", ConDumpGrfCargoTables, nullptr, true);
|
||||||
IConsole::CmdRegister("dump_signal_styles", ConDumpSignalStyles, nullptr, true);
|
IConsole::CmdRegister("dump_signal_styles", ConDumpSignalStyles, nullptr, true);
|
||||||
IConsole::CmdRegister("dump_sprite_cache_stats", ConSpriteCacheStats, nullptr, true);
|
IConsole::CmdRegister("dump_sprite_cache_stats", ConSpriteCacheStats, nullptr, true);
|
||||||
|
IConsole::CmdRegister("dump_version", ConDumpVersion, nullptr, true);
|
||||||
IConsole::CmdRegister("check_caches", ConCheckCaches, nullptr, true);
|
IConsole::CmdRegister("check_caches", ConCheckCaches, nullptr, true);
|
||||||
IConsole::CmdRegister("show_town_window", ConShowTownWindow, nullptr, true);
|
IConsole::CmdRegister("show_town_window", ConShowTownWindow, nullptr, true);
|
||||||
IConsole::CmdRegister("show_station_window", ConShowStationWindow, nullptr, true);
|
IConsole::CmdRegister("show_station_window", ConShowStationWindow, nullptr, true);
|
||||||
|
@@ -1136,18 +1136,6 @@ void CrashLog::MakeInconsistencyLog(const InconsistencyExtraInfo &info) const
|
|||||||
_save_DBGC_data = false;
|
_save_DBGC_data = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Makes a version info log, writes it to a file. It uses DEBUG to write
|
|
||||||
* information like paths to the console.
|
|
||||||
* @return true when everything is made successfully.
|
|
||||||
*/
|
|
||||||
void CrashLog::MakeVersionInfoLog() const
|
|
||||||
{
|
|
||||||
char buffer[65536];
|
|
||||||
this->FillVersionInfoLog(buffer, lastof(buffer));
|
|
||||||
printf("%s\n", buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Makes a crash dump and crash savegame. It uses DEBUG to write
|
* Makes a crash dump and crash savegame. It uses DEBUG to write
|
||||||
* information like paths to the console.
|
* information like paths to the console.
|
||||||
|
@@ -189,7 +189,6 @@ public:
|
|||||||
void MakeDesyncCrashLog(const std::string *log_in, std::string *log_out, const DesyncExtraInfo &info) const;
|
void MakeDesyncCrashLog(const std::string *log_in, std::string *log_out, const DesyncExtraInfo &info) const;
|
||||||
static bool WriteDesyncSavegame(const char *log_data, const char *name_buffer);
|
static bool WriteDesyncSavegame(const char *log_data, const char *name_buffer);
|
||||||
void MakeInconsistencyLog(const InconsistencyExtraInfo &info) const;
|
void MakeInconsistencyLog(const InconsistencyExtraInfo &info) const;
|
||||||
void MakeVersionInfoLog() const;
|
|
||||||
void MakeCrashSavegameAndScreenshot();
|
void MakeCrashSavegameAndScreenshot();
|
||||||
|
|
||||||
void SendSurvey() const;
|
void SendSurvey() const;
|
||||||
@@ -209,7 +208,7 @@ public:
|
|||||||
|
|
||||||
static void DesyncCrashLog(const std::string *log_in, std::string *log_out, const DesyncExtraInfo &info);
|
static void DesyncCrashLog(const std::string *log_in, std::string *log_out, const DesyncExtraInfo &info);
|
||||||
static void InconsistencyLog(const InconsistencyExtraInfo &info);
|
static void InconsistencyLog(const InconsistencyExtraInfo &info);
|
||||||
static void VersionInfoLog();
|
static void VersionInfoLog(char *buffer, const char *last);
|
||||||
|
|
||||||
static void RegisterCrashed() { CrashLog::have_crashed = true; }
|
static void RegisterCrashed() { CrashLog::have_crashed = true; }
|
||||||
static bool HaveAlreadyCrashed() { return CrashLog::have_crashed; }
|
static bool HaveAlreadyCrashed() { return CrashLog::have_crashed; }
|
||||||
|
@@ -899,7 +899,9 @@ int openttd_main(int argc, char *argv[])
|
|||||||
case 'x': scanner->save_config = false; break;
|
case 'x': scanner->save_config = false; break;
|
||||||
case 'J': _quit_after_days = Clamp(atoi(mgo.opt), 0, INT_MAX); break;
|
case 'J': _quit_after_days = Clamp(atoi(mgo.opt), 0, INT_MAX); break;
|
||||||
case 'Z': {
|
case 'Z': {
|
||||||
CrashLog::VersionInfoLog();
|
char buffer[65536];
|
||||||
|
CrashLog::VersionInfoLog(buffer, lastof(buffer));
|
||||||
|
fputs(buffer, stdout);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case 'X': only_local_path = true; break;
|
case 'X': only_local_path = true; break;
|
||||||
|
@@ -490,8 +490,8 @@ void CDECL HandleCrash(int signum, siginfo_t *si, void *context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* static */ void CrashLog::VersionInfoLog()
|
/* static */ void CrashLog::VersionInfoLog(char *buffer, const char *last)
|
||||||
{
|
{
|
||||||
CrashLogOSX log(CrashLogOSX::DesyncTag{});
|
CrashLogOSX log(CrashLogOSX::DesyncTag{});
|
||||||
log.MakeVersionInfoLog();
|
log.FillVersionInfoLog(buffer, last);
|
||||||
}
|
}
|
||||||
|
@@ -850,8 +850,8 @@ static void CDECL HandleCrash(int signum)
|
|||||||
log.MakeInconsistencyLog(info);
|
log.MakeInconsistencyLog(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void CrashLog::VersionInfoLog()
|
/* static */ void CrashLog::VersionInfoLog(char *buffer, const char *last)
|
||||||
{
|
{
|
||||||
CrashLogUnix log(CrashLogUnix::DesyncTag{});
|
CrashLogUnix log(CrashLogUnix::DesyncTag{});
|
||||||
log.MakeVersionInfoLog();
|
log.FillVersionInfoLog(buffer, last);
|
||||||
}
|
}
|
||||||
|
@@ -801,10 +801,10 @@ static void CDECL CustomAbort(int)
|
|||||||
log.MakeInconsistencyLog(info);
|
log.MakeInconsistencyLog(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void CrashLog::VersionInfoLog()
|
/* static */ void CrashLog::VersionInfoLog(char *buffer, const char *last)
|
||||||
{
|
{
|
||||||
CrashLogWindows log(nullptr);
|
CrashLogWindows log(nullptr);
|
||||||
log.MakeVersionInfoLog();
|
log.FillVersionInfoLog(buffer, last);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The crash log GUI */
|
/* The crash log GUI */
|
||||||
|
Reference in New Issue
Block a user