Beispiel #1
0
void vogl_fail(const char *pExp, const char *pFile, unsigned line)
{
    char buf[512];

    vogl::vogl_sprintf_s(buf, sizeof(buf), "%s(%u): Failure: \"%s\"\n", pFile, line, pExp);

    vogl_output_debug_string(buf);
    fputs(buf, stderr);

    vogl::dynamic_string_array backtrace;
    if (get_printable_backtrace(backtrace))
    {
        vogl_output_debug_string("Backtrace:");
        for (uint i = 0; i < backtrace.size(); i++)
            vogl_output_debug_string(backtrace[i].get_ptr());
    }

    if (vogl_is_debugger_present())
        vogl_debug_break();

#ifdef VOGL_USE_WIN32_API
    if (g_fail_exceptions)
        RaiseException(VOGL_FAIL_EXCEPTION_CODE, 0, 0, NULL);
    else
#endif
        if (g_exit_on_failure)
        exit(EXIT_FAILURE);
}
Beispiel #2
0
void trace(const char *pFmt, va_list args)
{
    if (vogl_is_debugger_present())
    {
        char buf[512];
        vogl::vogl_vsprintf_s(buf, sizeof(buf), pFmt, args);

        vogl_output_debug_string(buf);
    }
};
Beispiel #3
0
void vogl_assert(const char *pExp, const char *pFile, unsigned line)
{
    char buf[512];

    vogl::vogl_sprintf_s(buf, sizeof(buf), "%s(%u): Assertion failed: \"%s\"\n", pFile, line, pExp);

    vogl_output_debug_string(buf);
    fputs(buf, stderr);

#if 0
	vogl::dynamic_string_array backtrace;
	if (get_printable_backtrace(backtrace))
	{
		vogl_output_debug_string("Backtrace:");
		for (uint32_t i = 0; i < backtrace.size(); i++)
			vogl_output_debug_string(backtrace[i].get_ptr());
	}
#endif

    vogl_debug_break_if_debugging();
}