crashlog.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00012 #ifndef CRASHLOG_H
00013 #define CRASHLOG_H
00014
00018 class CrashLog {
00019 private:
00021 static const char *message;
00022
00024 static char *gamelog_buffer;
00025
00027 static const char *gamelog_last;
00028
00029 static void GamelogFillCrashLog(const char *s);
00030 protected:
00037 virtual char *LogOSVersion(char *buffer, const char *last) const = 0;
00038
00045 virtual char *LogCompiler(char *buffer, const char *last) const;
00046
00054 virtual char *LogError(char *buffer, const char *last, const char *message) const = 0;
00055
00063 virtual char *LogStacktrace(char *buffer, const char *last) const = 0;
00064
00072 virtual char *LogRegisters(char *buffer, const char *last) const;
00073
00081 virtual char *LogModules(char *buffer, const char *last) const;
00082
00083
00084 char *LogOpenTTDVersion(char *buffer, const char *last) const;
00085 char *LogConfiguration(char *buffer, const char *last) const;
00086 char *LogLibraries(char *buffer, const char *last) const;
00087 char *LogGamelog(char *buffer, const char *last) const;
00088
00089 public:
00091 virtual ~CrashLog() {}
00092
00093 char *FillCrashLog(char *buffer, const char *last) const;
00094 bool WriteCrashLog(const char *buffer, char *filename, const char *filename_last) const;
00095
00105 virtual int WriteCrashDump(char *filename, const char *filename_last) const;
00106 bool WriteSavegame(char *filename, const char *filename_last) const;
00107 bool WriteScreenshot(char *filename, const char *filename_last) const;
00108
00109 bool MakeCrashLog() const;
00110
00116 static void InitialiseCrashLog();
00117
00118 static void SetErrorMessage(const char *message);
00119 static void AfterCrashLogCleanup();
00120 };
00121
00122 #endif