diff --git a/src/xrt/state_trackers/oxr/oxr_logger.cpp b/src/xrt/state_trackers/oxr/oxr_logger.cpp
index eee1f1c323f86d46b49a3896bf71b4623ab88f50..6b2921b8fd93d5ebff051e7e6bd5ff4d76ce4a7c 100644
--- a/src/xrt/state_trackers/oxr/oxr_logger.cpp
+++ b/src/xrt/state_trackers/oxr/oxr_logger.cpp
@@ -16,13 +16,11 @@
 #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)
+#ifdef XRT_DEBUGBREAK
 DEBUG_GET_ONCE_BOOL_OPTION(break_on_error, "OXR_BREAK_ON_ERROR", false)
+#endif // XRT_DEBUGBREAK
 
 static const char *
 oxr_result_to_string(XrResult result);
@@ -97,14 +95,13 @@ oxr_error(struct oxr_logger *logger, XrResult result, const char *fmt, ...)
 	va_end(args);
 
 	fprintf(stderr, "\n");
+
+#ifdef XRT_DEBUGBREAK
 	if (debug_get_bool_option_break_on_error()) {
-/// Trigger a debugger breakpoint.
-#ifdef _MSC_VER
-		__debugbreak();
-#else
-		__builtin_trap();
-#endif
+		/// Trigger a debugger breakpoint.
+		XRT_DEBUGBREAK();
 	}
+#endif
 
 	return result;
 }