(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:
glx 2007-12-09 21:20:21 +00:00
parent 46c0edc80b
commit 6a83f9141b
4 changed files with 20 additions and 2 deletions

View File

@ -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 */

View File

@ -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 */

View File

@ -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)

View File

@ -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)