XErrorSetOptions
게임 OS나 게임 런타임에서 오류가 발생하면 원하는 동작을 지정합니다.
구문
void XErrorSetOptions(
XErrorOptions optionsDebuggerPresent,
XErrorOptions optionsDebuggerNotPresent
)
매개 변수
optionsDebuggerPresent _In_
형식: XErrorOptions
디버거가 연결될 경우 원하는 동작을 지정합니다.
optionsDebuggerNotPresent _In_
형식: XErrorOptions
디버거가 연결되지 않을 경우 원하는 동작을 지정합니다.
반환 값
형식: void
설명
참고 항목
이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.
게임 OS 또는 게임 런타임에서 오류가 발생할 때 게임의 반응을 지정하려면 이 함수를 사용합니다. 기본적으로 게임은 디비거가 연결되지 않을 경우 아무 동작도 수행하지 않고 연결될 경우 디버거에 디버그 메시지를 출력합니다.
디버거가 연결되고 optionsDebuggerPresent가 [XErrorOptions::DebugBreakOnError]로 설정될 경우 시스템이 디버거를 실행하거나 디버그 메시지를 출력합니다. 전역 변수의 값을 XErrorDisableDebugBreak
부터 true
까지로 설정하여 조사식 창을 통해 일시적으로 이 동작을 사용하지 않도록 설정할 수 있습니다.
다음 예제에서는 오류 옵션을 설정하고, 사용자 지정 오류 콜백을 정의하고, 시스템에서 오류 알림을 받도록 사용자 지정 콜백을 설정하는 방법을 보여줍니다.
bool CustomGameXErrorCallback(_In_ HRESULT hr, _In_ const char* msg, _In_ void* context)
{
// Capture the error to the game's custom logger
CustomGameLogger* logger = (CustomGameLogger*)context;
logger->ReportGameRuntimeIssue(hr, msg);
// Don't ignore the error. For example, continue on and do whatever
// is specified by XErrorSetOptions().
return true;
}
void SomeGameFunction()
{
// Previously initialize the game's custom logger
// CustomGameLogger* m_logger = InitializeLogger();
// ...
// Setup how you want to handle XErrors
XErrorSetOptions(DebugBreakOnError, FailFastOnError);
XErrorSetCallback(CustomGameXErrorCallback, m_logger);
}
요구 사항
헤더: XError.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔