我是靠谱客的博主 开放香菇,最近开发中收集的这篇文章主要介绍Windows程序崩溃捕获一例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景:

  windows系统内某进程总是异常崩溃退出,导致程序频繁死掉,windows自带崩溃捕获dump的功能,只需要我们手动设置一下即可
  
  

1.启动 Windows Error Reporting Service 服务
wdump1

2.移除默认的调试器

如果你的机器装了VS开发工具,会在注册表里写入调试器地址,需要把它删除

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionAeDebugDebugger
HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkDbgManagedDebugger

在 64 位 操作系统上也删除以下注册表项:

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionAeDebugDebugger
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkDbgManagedDebugger

3、执行下面注册表脚本,添加程序崩溃捕获dump(这个设置是捕获所有的程序崩溃的dump,可能会产生的文件比较多也比较大)

@echo off  
echo 正在启用Dump...  
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows Error ReportingLocalDumps"  
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows Error ReportingLocalDumps" /v DumpFolder /t REG_EXPAND_SZ /d "C:CrashDump" /f  
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows Error ReportingLocalDumps" /v DumpType /t REG_DWORD /d 2 /f  
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows Error ReportingLocalDumps" /v DumpCount /t REG_DWORD /d 10 /f  
echo Dump已经启用  
pause  
@echo on

如果想捕获某一个进程,则参考如下设置:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows Error ReportingLocalDumpsw3wp.exe]

4,查看dump文件,按照上面的设置,对应的dump文件在
“C:CrashDump” 这个目录下面

5,分析dump使用windbg这个工具,安装后自动关联dump文件,双击dump文件即可自动分析,生成分析报告

由于没有现场截图,贴上当时分析报告的主因:

In GetTCP_Winform_Service.exe.5356.dmp the assembly instruction at KERNELBASE!RaiseException+58 in C:WindowsSysWOW64KERNELBASE.dll has caused a CLR Exception on thread 981 with the following error information
Type:   System.Net.Sockets.SocketException
Message:   远程主机强迫关闭了一个现有的连接。

与开发核实后,该进程在连接重试方面存在问题,调整连接机制后崩溃问题恢复(keepalive+reconnect)

最后

以上就是开放香菇为你收集整理的Windows程序崩溃捕获一例的全部内容,希望文章能够帮你解决Windows程序崩溃捕获一例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部