mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-04 05:15:21 +00:00
(svn r11611) -Codechange: it is now possible to use a define to enable asserts and show them in crash.log for MSVC release builds
This commit is contained in:
parent
46c0edc80b
commit
6a83f9141b
@ -41,7 +41,7 @@ protected:
|
||||
if (name == NULL) return;
|
||||
|
||||
this->name = strdup(name);
|
||||
#if !defined(NDEBUG)
|
||||
#if !defined(NDEBUG) || defined(WITH_ASSERT)
|
||||
/* NDEBUG disables asserts and gives a warning: unused variable 'P' */
|
||||
std::pair<Blitters::iterator, bool> P =
|
||||
#endif /* !NDEBUG */
|
||||
|
@ -79,7 +79,7 @@ protected:
|
||||
strecpy(buf, GetDriverTypeName(type), lastof(buf));
|
||||
strecpy(buf + 5, name, lastof(buf));
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#if !defined(NDEBUG) || defined(WITH_ASSERT)
|
||||
/* NDEBUG disables asserts and gives a warning: unused variable 'P' */
|
||||
std::pair<Drivers::iterator, bool> P =
|
||||
#endif /* !NDEBUG */
|
||||
|
@ -207,6 +207,13 @@
|
||||
#define strcasecmp stricmp
|
||||
#define strncasecmp strnicmp
|
||||
#endif
|
||||
|
||||
void SetExceptionString(const char* s, ...);
|
||||
|
||||
#if defined(NDEBUG) && defined(WITH_ASSERT)
|
||||
#undef assert
|
||||
#define assert(expression) if (!(expression)) { SetExceptionString("Assertion failed at %s:%d: %s", __FILE__, __LINE__, #expression); *(byte*)0 = 0; }
|
||||
#endif
|
||||
#endif /* defined(_MSC_VER) */
|
||||
|
||||
#if defined(WINCE)
|
||||
|
@ -81,6 +81,17 @@ bool LoadLibraryList(Function proc[], const char *dll)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
static const char *_exception_string = NULL;
|
||||
void SetExceptionString(const char *s, ...)
|
||||
{
|
||||
va_list va;
|
||||
char buf[512];
|
||||
|
||||
va_start(va, s);
|
||||
vsnprintf(buf, lengthof(buf), s, va);
|
||||
va_end(va);
|
||||
|
||||
_exception_string = strdup(buf);
|
||||
}
|
||||
#endif
|
||||
|
||||
void ShowOSErrorBox(const char *buf)
|
||||
|
Loading…
Reference in New Issue
Block a user