Net程序崩溃了怎么去查找定位问题
- 工具
这里用到两个工具分别为Procdump+Windbg
Procdump:ProcDump是一个命令行实用工具,主要目的是监视应用程序,以便在管理员或开发人员可用于确定峰值的原因期间监视 CPU 峰值和生成故障转储。 ProcDump 还包括使用窗口挂起 (使用相同的窗口挂起定义,Windows和任务管理器使用) 、未经处理的异常监视,并可以根据系统性能计数器的值生成转储。 它还可用作可在其他脚本中嵌入的常规进程转储实用工具。(最主要的是轻量、跨平台)微软介绍地址
Windbg:Windbg是在windows平台下,强大的用户态和内核态调试工具。相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大。它的另外一个用途是可以用来分析dump数据。 - 准备测试程序
之所以这样写是为了让程序崩溃掉,利于我们抓取Dump文件 
- [class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var jj = Console.ReadLine();
Console.WriteLine(jj);
new TestMain().main();
Console.ReadLine();
}
}
class TestMain {
public void main() {
Timer timer = new Timer(new TimerCallback(m =>
{
var r = 10 / Convert.ToInt32("0");
}), null, 60000, 5000);
}
} ] 
- 抓取dump
这里我们利用Procdump工具抓取进程崩溃时的dump,首先下载好Procdump工具。 

下载完成后,进入工具目录在目录中打开cmd命令行工具定位到当前目录
在命令行中输入procdump -e -ma -w  Bcode_ConsoleApp.exe监控exe应用 这里也可以输入程序的PID

等待应用执行,下面运行我们的测试程序

接下来等程序崩溃

OK这里我们就完成了一大步,我们成功抓取到dump文件,dump文件就在Procdump工具目录下

- 解析dump查找问题原因
这里我们利用微软的Windbg强大工具进行解析处理

 
这里我们成功打开了dump文件并查找到4个线程
在【54b0】线程中我们看到一个错误,然后查看一下错误的具体信息

从错误信息中我们可以看到堆栈信息,找到堆栈信息对照我们的程序代码就可以定位并解决问题了
Net程序崩溃了怎么去查找定位问题的更多相关文章
- Linux下程序崩溃,ulimit,coredump,gdbserver
		
操作系统:Ubuntu10.04 前言: 在程序崩溃后,如何快速定位问题. 以下方法适用于开发调试阶段,不太适用成品. 本文着眼于嵌入式,PC方面更简单. 核心:gdbserv ...
 - VS2005(vs2008,vs2010)使用map文件查找程序崩溃原因
		
VS 2005使用map文件查找程序崩溃原因 一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的 ...
 - 如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数
		
1 案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名 ...
 - Win32环境下的程序崩溃异常定位
		
1 案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名 ...
 - 使用SetUnhandledExceptionFilter转储程序崩溃时内存DMP .
		
关于程序崩溃时转储内存DMP,可以设置注册表,使程序崩溃时自动转储内存DMP,见程序崩溃时利用注册表自动转储内存DMP.本文要介绍的是使用SetUnhandledExceptionFilter函数在程 ...
 - Android 程序崩溃后的处理
		
在应用发布以后,由于安卓机型的千差万别 ,可能会出现各种各样的问题,这时候如果我们可以将这些信息收集起来,并进行修改就很不错了.下面就来讨论一下怎么处理程序崩溃以后,错误信息的手机. Java中已经提 ...
 - cefSharp在XP下使得程序崩溃记录
		
前言:这是一个奇葩的问题,到现在自己还没有搞明白问题出现在哪里,但是从问题总算是解决了,希望看到此文章的大牛,如果知道问题出在什么地方,可以告知一下. [一个在XP系统下面应用程序崩溃问题] 资源: ...
 - 【转】 当程序崩溃的时候怎么办 Part-2
		
转自:http://www.tairan.com/archives/1143 欢迎回到当程序崩溃的时候怎么办 教程! 在这个教程的第一部分,我们介绍了SIGABRT和EXC_BAD_ACCESS错误, ...
 - 【转】 当程序崩溃的时候怎么办 part-1
		
转自:http://www.tairan.com/archives/1006 有这样一种情形:当我们正在快乐的致力于我们的app时,并且什么看都是无比顺利,但是突然,坑爹啊,它崩溃了.(悲伤地音乐响起 ...
 
随机推荐
- SpringDoc-OpenApi与Fastjson冲突——FastJsonHttpMessageConverter对String的默认处理
			
我的项目中默认是这样使用FastJsonHttpMessageConverter的: @Override public void configureMessageConverters(List< ...
 - MYSQL5.7详细安装步骤
			
0.更换yum源 1.打开 mirrors.aliyun.com,选择centos的系统,点击帮助 2.执行命令:yum install wget -y 3.改变某些文件的名称 mv /etc/yum ...
 - 羽夏看Win系统内核——内存管理篇
			
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
 - C++11移动语义之一(基本概念)
			
摘要 移动语义是C++11的新特性之一,利用移动语义可以实现对象的移动而非拷贝.在某些情况下,可以大幅度的提升性能.本文将介绍C++11移动语义中的一些基本概念. 表达式 表达式是由一个或者多个运算对 ...
 - 您对 Mike Cohn 的测试金字塔了解多少?
			
Mike Cohn 提供了一个名为 Test Pyramid 的模型.这描述了软件开发所需的自 动化测试类型. 根据金字塔,第一层的测试数量应该最高.在服务层,测试次数应小于单元测试 级别,但应大于端 ...
 - docker学习-01-安装docker
			
[root@localhost firstDocker]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) [root@loc ...
 - 经历了源码的痛苦,掌握DRF的核心序列化器
			
目录 DRF的核心--序列化器 序列化器 什么是序列化和反序列化? 序列化 序列化demo 字段类型 字段参数 序列化自定制返回字段 方法一:在序列化类(serializers.py)中写 方法二:在 ...
 - 《剑指offer》面试题4:替换空格
			
面试题4:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如输入"We are happy.",则输出"we%20are%20 ...
 - 220v-5v稳压电路
			
5V整流电路原理 先对电路进行整流 整流电路:利用单向导电器件将交流电转换成脉动直流电路,再用电容进行滤波 滤波电路:利用储能元件(电感或电容)把脉动直流电转换成比较平坦的直流电,然后对电路进行稳压 ...
 - web移动开发中如何实现图标点击态的蒙层效果
			
webapp开发中经常需要加入点击二态,即用户点击(tap)页面某个部分时该部分的样式进行相应的变化来相应用户的点击操作,这样能够带来更好的用户体验,今天我们要讨论的是如何给图标加上点击的二态效果. ...