mirror of https://github.com/OpenTTD/OpenTTD
(svn r18855) -Codechange: record compiler name and version in the crash log
parent
23a8d2239f
commit
9fc910fbc2
|
@ -35,6 +35,30 @@
|
||||||
/* static */ char *CrashLog::gamelog_buffer = NULL;
|
/* static */ char *CrashLog::gamelog_buffer = NULL;
|
||||||
/* static */ const char *CrashLog::gamelog_last = NULL;
|
/* static */ const char *CrashLog::gamelog_last = NULL;
|
||||||
|
|
||||||
|
char *CrashLog::LogCompiler(char *buffer, const char *last) const
|
||||||
|
{
|
||||||
|
buffer += seprintf(buffer, last, " Compiler: "
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
"MSVC %d", _MSC_VER
|
||||||
|
#elif defined(__ICC) && defined(__GNUC__)
|
||||||
|
"ICC %d (GCC %d.%d.%d mode)", __ICC, __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__
|
||||||
|
#elif defined(__ICC)
|
||||||
|
"ICC %d", __ICC
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
"GCC %d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__
|
||||||
|
#elif defined(__WATCOMC__)
|
||||||
|
"WatcomC %d", __WATCOMC__
|
||||||
|
#else
|
||||||
|
"<unknown>"
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
#if defined(__VERSION__)
|
||||||
|
return buffer + seprintf(buffer, last, " \"" __VERSION__ "\"\n\n");
|
||||||
|
#else
|
||||||
|
return buffer + seprintf(buffer, last, "\n\n");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/* virtual */ char *CrashLog::LogRegisters(char *buffer, const char *last) const
|
/* virtual */ char *CrashLog::LogRegisters(char *buffer, const char *last) const
|
||||||
{
|
{
|
||||||
/* Stub implementation; not all OSes support this. */
|
/* Stub implementation; not all OSes support this. */
|
||||||
|
@ -233,6 +257,7 @@ char *CrashLog::FillCrashLog(char *buffer, const char *last) const
|
||||||
buffer = this->LogRegisters(buffer, last);
|
buffer = this->LogRegisters(buffer, last);
|
||||||
buffer = this->LogStacktrace(buffer, last);
|
buffer = this->LogStacktrace(buffer, last);
|
||||||
buffer = this->LogOSVersion(buffer, last);
|
buffer = this->LogOSVersion(buffer, last);
|
||||||
|
buffer = this->LogCompiler(buffer, last);
|
||||||
buffer = this->LogConfiguration(buffer, last);
|
buffer = this->LogConfiguration(buffer, last);
|
||||||
buffer = this->LogLibraries(buffer, last);
|
buffer = this->LogLibraries(buffer, last);
|
||||||
buffer = this->LogModules(buffer, last);
|
buffer = this->LogModules(buffer, last);
|
||||||
|
|
|
@ -40,6 +40,14 @@ protected:
|
||||||
*/
|
*/
|
||||||
virtual char *LogOSVersion(char *buffer, const char *last) const = 0;
|
virtual char *LogOSVersion(char *buffer, const char *last) const = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Writes compiler (and its version, if available) to the buffer.
|
||||||
|
* @param buffer The begin where to write at.
|
||||||
|
* @param last The last position in the buffer to write to.
|
||||||
|
* @return the position of the \c '\0' character after the buffer.
|
||||||
|
*/
|
||||||
|
virtual char *LogCompiler(char *buffer, const char *last) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes actually encountered error to the buffer.
|
* Writes actually encountered error to the buffer.
|
||||||
* @param buffer The begin where to write at.
|
* @param buffer The begin where to write at.
|
||||||
|
|
|
@ -62,7 +62,7 @@ class CrashLogOSX : public CrashLog {
|
||||||
" Name: Mac OS X\n"
|
" Name: Mac OS X\n"
|
||||||
" Release: %d.%d.%d\n"
|
" Release: %d.%d.%d\n"
|
||||||
" Machine: %s\n"
|
" Machine: %s\n"
|
||||||
" Min Ver: %d\n\n",
|
" Min Ver: %d\n",
|
||||||
ver_maj, ver_min, ver_bug,
|
ver_maj, ver_min, ver_bug,
|
||||||
arch != NULL ? arch->description : "unknown",
|
arch != NULL ? arch->description : "unknown",
|
||||||
MAC_OS_X_VERSION_MIN_REQUIRED
|
MAC_OS_X_VERSION_MIN_REQUIRED
|
||||||
|
|
|
@ -46,7 +46,7 @@ class CrashLogUnix : public CrashLog {
|
||||||
" Name: %s\n"
|
" Name: %s\n"
|
||||||
" Release: %s\n"
|
" Release: %s\n"
|
||||||
" Version: %s\n"
|
" Version: %s\n"
|
||||||
" Machine: %s\n\n",
|
" Machine: %s\n",
|
||||||
name.sysname,
|
name.sysname,
|
||||||
name.release,
|
name.release,
|
||||||
name.version,
|
name.version,
|
||||||
|
|
|
@ -79,17 +79,11 @@ public:
|
||||||
return buffer + seprintf(buffer, last,
|
return buffer + seprintf(buffer, last,
|
||||||
"Operating system:\n"
|
"Operating system:\n"
|
||||||
" Name: Windows\n"
|
" Name: Windows\n"
|
||||||
" Release: %d.%d.%d (%s)\n"
|
" Release: %d.%d.%d (%s)\n",
|
||||||
" MSVC: %s\n\n",
|
|
||||||
(int)os.dwMajorVersion,
|
(int)os.dwMajorVersion,
|
||||||
(int)os.dwMinorVersion,
|
(int)os.dwMinorVersion,
|
||||||
(int)os.dwBuildNumber,
|
(int)os.dwBuildNumber,
|
||||||
os.szCSDVersion,
|
os.szCSDVersion
|
||||||
#if defined(_MSC_VER)
|
|
||||||
"Yes"
|
|
||||||
#else
|
|
||||||
"No"
|
|
||||||
#endif
|
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue