2019-9-3-win10-uwp-收集-DUMP-文件

六月ゝ 毕业季﹏ 提交于 2019-11-27 15:43:10
title author date CreateTime categories
win10 uwp 收集 DUMP 文件
lindexi
2019-09-03 17:48:44 +0800
2018-11-15 08:41:45 +0800
Win10 UWP

如果在用户端软件直接退出,在以前 win32 程序可以使用 DUMP 进行调试。在 UWP 需要在电脑的注册表做一些配置才可以收集到 DUMP 文件

打开注册表,通过 win+R 运行 regedit 就可以打开注册表

注册表可以输入路径,请输入 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting 请看下面

如果不存在 LocalDumps 文件夹,请右击创建一个

右击新建项,输入 LocalDumps 保存

右击新建一个可扩展字符串,写入 DumpFolder 然后双击输入 DUMP 文件可以存放的文件夹,注意这个文件夹需要有权限

接着右击新建 DWORD 32 位,输入 DumpCount 再双击输入值,这个表示最多可以存放多少个 DUMP 文件,默认值是 10 个

右击新建 DWORD 32 位,输入 DumpType 再双击输入值,设置存放的 DUMP 是什么 DUMP 可以选的值有三个。输入 0 是 Custom dump 自定义的 dump 文件,输入 1 是 Mini dump 一个小的 DUMP 输入 2 是 Full dump 推荐使用包含程序所有信息的 dump 这样调试方便。但是 Full dump 是很大的,如果使用了推荐设置 DumpCount 小一些。

最后一个值可以不创建,只有在 DumpType 设置为 0 也就是 Custom dump 才需要新建 CustomDumpFlags 这个是 DWORD 32 位,具体请看 _MINIDUMP_TYPE

设置完成就可以运行一个会炸的程序,看一下是不是在设置的文件里面存在了 DUMP 文件

如果小伙伴不想做复杂的设置,请看这篇博客用脚本自动设置 UWP应用异常退出Dump - Lulixue的专栏 - CSDN博客

用 PowerShell 设置方法请看下面代码

New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "LocalDumps" New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Value "%LOCALAPPDATA%\CrashDumps" -PropertyType "ExpandString" New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Value 10 -PropertyType DWord

这里 "%LOCALAPPDATA%\CrashDumps" 就是设置 DUMP 输出文件夹,请将这个文件夹修改为你期望的路径

创建一个运行直接退出的程序

打开 VisualStudio 创建一个 UWP 程序,在这个程序里面写简单代码

界面的代码

    <Grid Background="Transparent">         <TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center" Text="不要碰我,碰我就直接退出&#x0a;&#x0a;欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客"/>     </Grid>

打开 cs 文件,在用户碰到软件就让软件直接退出

        public MainPage()         {             InitializeComponent();              Content.PointerMoved += MainPage_PointerMoved;         }          private void MainPage_PointerMoved(object sender, PointerRoutedEventArgs e)         {             throw new Exception();         }

现在运行程序,碰一下让他直接退出,打开刚才设置的 DUMP 文件夹,可以看到文件

调试 DUMP 文件

推荐使用 WinDbg Preview 进行调试

打开应用商店,搜 WinDbg Preview 就可以安装

直接双击 DUMP 文件使用 WinDbg Preview 打开

打开之后就可以去玩一会回来,加载符号需要很长的时间

这个软件的每个界面功能请看下面

调试的方法本文就不告诉大家了

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!