다음을 통해 공유


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 콘솔

참고 항목

XError 멤버
XErrorOptions