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 主机