- 收集系统范围的调试输出与关键系统事件
- 使用规则编辑器过滤和自定义输出
- 通过多个输出选项卡分离输出流
- 保存并分发你的自定义规则和设置
- 获取详细的进程监视与控制
- 创建并管理分级、堆和微型内存转储
目录
打开 xbWatson
可以从 GDK 命令提示符、XBOX Manager 中打开 xbWatson,也可以在“开始”菜单中搜索 xbWatson。除非通过命令行提供测试主机的 IP 或主机名进行覆盖,否则 xbWatson 将连接到你的默认主机。 从命令行打开 xbWatson,使用默认主机:

配置覆盖
启动时,xbWatson 会加载位于 %localappdata%\Microsoft\Xbox One Development Kit\xbWatson\3.0 下名为 defaultconfig.txt 的默认配置文件。此文件保存输出选项卡的状态、它们的配置、规则以及已应用的规则。该文件可以共享给其他 GDK 用户,以便他们能快速使用自定义设置打开 xbWatson 会话。你可以通过以下方式加载共享配置:- 覆盖本地的 defaultconfig.txt 文件保存。
- 从 Windows 将 sharedconfig.txt 文件拖放到 xbWatson.exe 上。
- 使用指向已保存配置文件的命令行开关打开 xbWatson.exe(例如 xbwatson.exe E:\MyConfig\sharedconfig.txt)
Loading configuration ‘C:\Users\UserName\AppData\Local\Microsoft\Xbox One Development Kit\xbWatson\3.0\defaultConfig.txt’.
功能
xbWatson 的功能包括:在主输出窗口中查看和配置输出、通过编辑器和菜单应用输出规则、通过 Data feeds 菜单筛选输出类型,以及在 Dashboard 中管理围绕 Log 诊断、Game OS 进程列表以及堆栈转储生成与管理的高级功能。主输出窗口
主输出窗口由标题栏、输出选项卡、规则编辑器和 Dashboard 组成,如图 1 所示。 图 1. xbWatson
标题栏
当 xbWatson 连接到主机时,标题栏为绿色并显示连接详细信息,如图 2 所示。 图 2. 标题栏(已连接)输出选项卡
启动时会有一个默认输出选项卡。你可以点击最后一个选项卡右侧的加号 (+) 创建更多输出选项卡。点击某个选项卡右侧的 x 可以移除该输出选项卡。点击名称 (Output) 可以重命名该选项卡。当有来自主机的调试输出流入时,该选项卡的活动指示灯会闪烁。可以通过高亮或选中文本,然后使用标准的 Windows 复制命令,将数据在剪贴板缓冲区与输出窗口之间移动。在每个输出选项卡中,你可以使用以下选项菜单来配置该选项卡。Add/Remove Rules 菜单
使用 Add/Remove Rules 菜单可为当前输出选项卡开启或关闭规则,如图 3 所示。有关创建规则的更多信息,请参阅本主题后面的“规则编辑器”部分。 图 3. Add/Remove Rules 菜单
Data feeds 菜单
使用 Data feeds 菜单可配置当前输出选项卡显示的输出流,如图 4 所示。 图 4. Data feeds 菜单
通过选中或清除流名称旁的复选框,可以开启或关闭输出流。点击流名称右侧的齿轮图标可以配置该流中的各个选项,如图 5 所示。
图 5. 流控制
可用的数据流如下表所示。
规则编辑器
规则编辑器位于主输出窗口的右侧,如图 6 所示。 图 6. 规则编辑器
创建规则
- 从左窗格中点击 New。会创建一个新的空规则。
- 命名该规则。
- 添加新条件。
- 匹配正则表达式:输入要计算的正则表达式字符串。
- 添加操作(在成功匹配条件后执行):
- Change color:打开颜色选择器,用于更改匹配文本的颜色。
- Acquire stack dump:触发所选类型的堆栈转储。
- Include text:仅显示该文本。
- Exclude text:不显示该文本。
- Disable this rule:停止运行此规则。这在自动化测试运行期间只需获取一次堆栈转储时很有用。
- Set trigger to break:挂起进程并准备附加调试器。
- Invasively attach:将 xbWatson 作为调试器附加到进程。
- Remove invasive attach:移除 xbWatson 作为调试器。
- Flash window:在任务栏中闪烁 xbWatson 图标。
- Show banner message:在输出窗口顶部显示横幅消息,并将该选项卡的活动指示灯变为红色以吸引你的注意。
- Clear banner message:移除输出窗口顶部的横幅消息。
- Enable other rule:为此输出选项卡启用指定的规则。
- Disable other rule:为此输出选项卡禁用指定的规则。
- 保存该规则。
从规则编辑器应用规则时,请注意 toggle multi-select 按钮。仅应用当前所选的规则。
Dashboard
点击主输出窗口底部的向上箭头会打开 Dashboard,如图 7 所示。Dashboard 最小化时,窗口左下角会显示 Dashboard 的状态指示灯。这些状态指示灯对应于 Dashboard 项目。它们通过闪烁或改变颜色来指示数据流或状态变化。 图 7. DashboardLog
日志包含与 xbWatson 本身以及 xbWatson 与开发套件连接相关的信息。你可以查看启动时加载了哪个配置文件、正在联系的是哪个 IP 地址或已保存的连接字符串,以及关于 xbWatson 的其他调试信息。如果与开发套件的连接出现问题,该 Dashboard 项目会变为红色。Game OS
当开发套件上没有游戏在运行时,此 Dashboard 项目显示为黄色,表明进程数据不可用。在没有游戏运行时,你可以看到有关开发套件设置的一小组数据。 当有游戏在运行时,你可以看到类似 Windows 任务管理器的扩展数据。行的颜色按以下方式指示状态,如图 8 所示。- 绿色:进程数据在最近五秒内发生了变化。
- 红色:进程已结束。
- 橙色:进程被挂起,包括调试(break)。
- 蓝色:附加了调试器,包括作为 invasive attach 的 xbWatson。
- Terminate:点击一个活动进程,然后点击 Terminate 按钮可结束该进程。
- Break (debug):这会挂起进程并准备附加调试器。
- Resume:这会移除调试中断并恢复进程。
- Monitor:将 xbWatson 作为侵入式调试器附加。同一进程一次只允许附加一个侵入式调试器,因此以这种方式连接 xbWatson 会阻止 Visual Studio 连接到该进程。多个 xbWatson 实例会共享此附加连接。如果所有 xbWatson 实例都关闭,将自动断开附加。启用后,进程调试数据流(可从配置输出流 UI 使用)开始接收数据。附加后,Output debug string 会通过 Process debug 流传输。
- Detach:移除 xbWatson 作为侵入式调试器。
内存转储
使用 Memory Dump 菜单可生成内存转储或访问 quiesce 挂起转储。 可为主机上当前运行的游戏创建堆、微型或分级内存转储。生成的转储会存储在主机本地,可通过 Manual Memory Dumps 表下方的 Download 按钮下载。 只有在有游戏正在运行并且能够以这种方式生成内存转储时,Generate 按钮才可用。xbWatson 会以正在运行的游戏(进程 ID)与主机上已注册的游戏映像名相匹配为目标。 Memory Dump 面板仅在游戏运行时允许进行内存转储管理。生成和下载操作都会使 Dashboard 忙碌指示灯闪烁,表示正在活动。 如果发生挂起超时且没有附加调试器,则会自动创建 quiesce 挂起转储。这些转储有助于确定游戏的挂起处理程序为何未能在规定时间内完成。Dashboard 指示灯闪烁表明有 quiesce 挂起转储可用。可用的挂起转储会列在 Quiesce Memory Dumps 表中。使用表下方的 Download 按钮将 quiesce 挂起转储复制到你的开发 PC。有关 Microsoft Game Development Kit (GDK) 为调试游戏生命周期支持所需的挂起和恢复处理程序提供的完整功能说明,请参阅调试游戏生命周期状态之间的转换。 图 9. 内存与 Quiesce 挂起转储
Game memory
以类似任务管理器的视图展示 xbWatson 所连接主机的状态。 Game Memory 面板目前重点关注游戏与工具的内存消耗。其他统计信息(例如 CPU 或文件 IO 统计)将在未来版本中添加。
