如何在Windows Store应用闪退的时候自动生成dump

    当开发者在测试或者用户使用Windows store 应用的时候,我们可能希望Windows store程序能够在发生异常的时候自动生成dump文件以便于以后分析。在写桌面应用的时候,我们可以通过调用API MiniDumpWriteDump来实现。但是这个API在Windows store应用中是不被支持的。那么有没有其他办法来生成dump了呢? 其实以前的Windows Error Reporting机制针对Windows store应用还是有效的,所以你可以通过改写注册表的办法让应用程序自动生成dump,具体步骤如下:

1) 运行REGEDIT.EXE 找到 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps”. 如果该键不存在的话则新建LocalDumps 键,。

2) 创建一个与你的Windows store应用进程同名的子键,比如说MyApp.exe。

3) 在子键中创建一个名为DumpFolder,类型为REG_EXPAND_SZ的值,设置它的值为你需要生成dump的目录(保证要存在),比如说C:\Dumps。

4) 在同一个子键中创建一个名为DumpCount,类型为REG_DWORD的值,设置他的值为5 (生成dump的最大数目)。

5) 在同一个子键中创建一个名为DumpType,类型为REG_DWORD的值,设置他的值为2 (full dump)。

其结果如图所示:

这样在你的Windows store应用闪退的时候就可以自动得到full dump了。你可以将上述注册表键值放在一个注册表文件中,当用户有闪退的情况是,让用户倒入该注册表文件,然后将生成的dump文件上传。

不允许评论