Commit 891eb7f1 authored by Ryan Pavlik's avatar Ryan Pavlik Committed by Jakob Bornecrantz

st/oxr: Add a debug option to break/trap on error.

Might be useful for debugging, since once the consuming call has returned,
you've lost most of the context of what led to the error.
parent d7850f2c
......@@ -16,8 +16,13 @@
#include "oxr_objects.h"
#include "oxr_logger.h"
#ifdef _MSC_VER
// needed for __debugbreak()
#include <intrin.h>
#endif // _MSC_VER
DEBUG_GET_ONCE_BOOL_OPTION(entrypoints, "OXR_DEBUG_ENTRYPOINTS", false)
DEBUG_GET_ONCE_BOOL_OPTION(break_on_error, "OXR_BREAK_ON_ERROR", false)
static const char *
oxr_result_to_string(XrResult result);
......@@ -85,12 +90,22 @@ oxr_error(struct oxr_logger *logger, XrResult result, const char *fmt, ...)
fprintf(stderr, " in %s", logger->api_func_name);
}
fprintf(stderr, ": ");
va_list args;
va_start(args, fmt);
vfprintf(stderr, fmt, args);
va_end(args);
fprintf(stderr, "\n");
if (debug_get_bool_option_break_on_error()) {
/// Trigger a debugger breakpoint.
#ifdef _MSC_VER
__debugbreak();
#else
__builtin_trap();
#endif
}
return result;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment