在用户端软件直接退出时,传统的 win32 程序可以通过 dump 文件进行调试。然而,在 uwp 环境中,需要在电脑的注册表中进行一些配置才能收集到 dump 文件。
首先,打开注册表。可以通过 Win+R 快捷键运行
regedit来打开注册表编辑器。
在注册表中,输入路径
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting。如果在该路径下没有找到
LocalDumps文件夹,请右击并创建一个新项,命名为
LocalDumps。

接下来,在
LocalDumps文件夹下,右击并新建一个可扩展字符串值,命名为
DumpFolder。双击该值,输入一个用于存放 DUMP 文件的文件夹路径,确保该文件夹具有相应的权限。

然后,右击并新建一个 DWORD 32 位值,命名为
DumpCount。双击该值,输入一个数字,表示最多可以存放的 DUMP 文件数量,默认值为 10。
再新建一个 DWORD 32 位值,命名为
DumpType。双击该值,输入一个数字来设置 DUMP 文件的类型。可以选择的值有三个:输入 0 表示 Custom dump,输入 1 表示 Mini dump,输入 2 表示 Full dump。推荐使用包含程序所有信息的 Full dump,但请注意 Full dump 文件较大,因此建议适当调整
DumpCount的值。
最后,如果
DumpType设置为 0(Custom dump),需要新建一个 DWORD 32 位值,命名为
CustomDumpFlags,具体设置请参考
_MINIDUMP_TYPE。
完成上述配置后,可以运行一个会导致程序崩溃的程序,检查设置的文件夹中是否生成了 DUMP 文件。
要创建一个会直接退出的 UWP 程序,可以使用 Visual Studio 创建一个新的 UWP 项目,并在其中编写简单的代码。
界面代码如下:
在 CS 文件中,添加以下代码以在用户触碰软件时直接退出:
public MainPage()
{
InitializeComponent();
Content.PointerMoved += MainPage_PointerMoved;
}
private void MainPage_PointerMoved(object sender, PointerRoutedEventArgs e)
{
throw new Exception();
}运行该程序,触碰界面使其直接退出,然后检查之前设置的 DUMP 文件夹,确认是否生成了 DUMP 文件。

调试 DUMP 文件时,推荐使用 WinDbg Preview。可以通过应用商店搜索并安装 WinDbg Preview。

双击 DUMP 文件即可使用 WinDbg Preview 打开。请注意,加载符号可能需要较长时间。

WinDbg Preview 的界面功能请参考以下图片:

本文不详细介绍调试方法,具体请参考原文:https://www.php.cn/link/34c9857f8eaa71063a6db763f5c9ff73。

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:https://www.php.cn/link/69fc366f1a0ccb6967c128510f26854e。











