Windows程序崩溃捕获一例

简介: windows系统内某进程总是异常崩溃退出,导致程序频繁死掉

背景:

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

1.启动 Windows Error Reporting Service 服务
wdump1

2.移除默认的调试器

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

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

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger

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

@echo off  
echo 正在启用Dump...  
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps"  
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpFolder /t REG_EXPAND_SZ /d "C:\CrashDump" /f  
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpType /t REG_DWORD /d 2 /f  
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpCount /t REG_DWORD /d 10 /f  
echo Dump已经启用  
pause  
@echo on

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\w3wp.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:\Windows\SysWOW64\KERNELBASE.dll has caused a CLR Exception on thread 981 with the following error information
Type:   System.Net.Sockets.SocketException
Message:   远程主机强迫关闭了一个现有的连接。

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

目录
相关文章
|
7月前
|
消息中间件 编译器 API
Windows窗口程序
Windows窗口程序
|
7月前
|
Windows
实现Windows程序的数据更新
实现Windows程序的数据更新
|
7月前
|
Windows
构建布局良好的Windows程序
构建布局良好的Windows程序
|
7月前
|
C# Windows
初识Windows程序
初识Windows程序
|
7月前
|
Java Linux Windows
windows实现自动部署jar包运行程序
windows实现自动部署jar包运行程序
307 0
|
3月前
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
3月前
|
小程序 Windows
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
|
2月前
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
79 0
|
3月前
|
安全 网络安全 API
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
|
7月前
|
编译器 C语言 C++