首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在.NET程序崩溃自动创建Dump?

今天在浏览张队转载文章的留言,遇到一个读者问了这样的问题,如下图所示: 首先能明确的一点是"程序崩溃退出了是不能用常规的方式 dump 的",因为整个进程树都已经退出。...现场已经无法使用常规的方式读取到。 一般来说常规的方法是没办法读取到的,也有一些特殊的方式,比如有关部门在调查取证,就可以通过一些工具读取到内存中的信息。...不过好消息是,虽然您无法在程序崩溃退出以后创建 Dump,但是您可以在程序崩溃自动创建 Dump,这样下次遇到程序崩溃,那么就可以有分析的现场了。...Windows 平台 在 Windows 中,可以将 Windows 错误报告 (WER) 配置为在应用程序崩溃生成转储。...总结 本文主要是介绍了如何在 dotNet 程序崩溃自动创建 Dump,Windows 上的方法对于.NET Freamwork 和.NET Core 版本都适用。.

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux+Windows: 程序崩溃,在 C++ 代码中,如何获取函数调用栈信息

一、前言 二、Linux 平台 三、Windwos 平台 一、前言 程序在执行过程中 crash 是非常严重的问题,一般都应该在测试阶段排除掉这些问题,但是总会有漏网之鱼被带到 release 阶段。...因此,程序的日志系统需要侦测这种情况,在代码崩溃的时候获取函数调用栈信息,为 debug 提供有效的信息。...这篇文章的理论知识很少,直接分享 2 段代码:在 Linux 和 Windows 这 2 个平台上,如何用 C++ 来捕获函数调用栈里的信息。 二、Linux 平台 1....,从地址转换为函数名称。...利用以上几个神器,基本上可以获取到程序崩溃函数调用栈信息,定位问题,有如神助! ----

5.5K20

使用 Google Breakpad 来助力解决程序崩溃

背景 作为一名程序,最头疼的莫过于项目上线后收到程序崩溃的通知,若能够在手头重现出该问题,那相对来说项目能够及时的修复并更新;如果无法重现外网崩溃的问题,那就十分的"头疼"了。...breakpad原理图 image 在默认情况下,当程序崩溃 breakpad 会生成一个 minidump 文件,它在不同平台上的实现机制不一样,解释如下: 在 Windows 平台上,使用微软提供的...Breakpad 在所有的平台上都使用 minidump 文件格式,minidump 文件格式是由微软开发的用于崩溃上传,它包括: 当 dump 生成进程中一系列 executable 和 shared...这些数据都是未解析的字节流,Breakpad client 通常没有调试信息能生成函数名,行号,甚至无法确定 stack frame 的边界。...总体来说 Breakpad 使用起来并不麻烦,崩溃采集的结果也很准确,相信对很多想把产品做好的公司来说是一把利器。

1.9K30

使用ProcDump工具解决Windows应用程序崩溃

和Dr.Watson、ADPlus以及DebugDiag一样,ProcDump可以在不期望的情况或者异常发生,用于俘获一个进程的内存转储。...而且也同ADPlus以及DebugDiag一样,它可以对一个挂起的应用程序强制进行进程转储。但和之前的任何工具不同的是,ProcDump可以在CPU的活动峰值达到一个指定的级别,对一个进程进行转储。...当不带任何参数,ProcDump工具会在保持应用程序执行的情况下,强制进行一个内存转储。 通过使用-h参数,ProcDump会检测一个挂起的Windows应用程序,并强制进行内存转储。...使用-e参数可以使得ProcDump去检测应用程序的一个未处理的异常,并获取进程转储。通过接下来对进程转储的分析,您可以弄清哪些程序、DLL以及错误情况在中断发生了。

2.7K50

CC++程序终止执行的函数——atexit()函数详解

+C或Ctrl+break操作来终止程序等等,因此需要有一种与程序退出方式无关的方法来进行程序退出的必要处理。...方法就是用atexit()函数来注册程序正常终止要被调用的函数。   atexit()函数的参数是一个函数指针,函数指针指向一个没有参数也没有返回值的函数。...atexit()的函数原型是:#include intatexit(void(*func)(void));atexit()成功返回零,失败返回非零。   ...函数说明:atexit()用来设置一个程序正常结束前调用的函数....当程序通过调用exit()或从main 中返回, 参数function 所指定的函数会先被调用, 然后才真正由exit()结束程序.返回值:如果执行成功则返回0, 否则返回-1, 失败原因存于errno

1.9K20

C#类来封装C++Dll里的方法

最后是在C++那边做了修改解决的,通过制定模块定义 (.def) 文件,统一制定导出函数对应的名称。返回值为结构体指针的函数用IntPtr也能使用了。  ... int to_port, string server_id, string user_id, string user_name, IntPtr user_obj_param); 4、后来还遇到个回调函数导致的崩溃问题...刚开始同事分析出了崩溃的原因,都是回收方式惹的祸,可参见http://www.hudong.com/wiki/WINAPI,尝试使用__stdcall,但是还是没有解决问题   后来实践证明,程序是很严谨的...总结:直接安装vcredist_x86.exe,所有dll必须使用Release版的。如果使用Debug版的就必须保证可执行程序目录下的dll是完整的,缺一不可!   ...做程序就怕出现问题,出现问题就怕不知道原因,知道原因了就好找解决的办法啦!

1K10

WPF 基于 WER 注册应用崩溃无响应回调和重启方法

例如做一个类似 Office 的 PPT 的软件,可以在此软件在崩溃的时候,依然有时机可以保存用户的文档信息。从而实现尽可能不会因为软件崩溃而丢失信息 在开始之前,先来做一个演示。...如下应用将因为写了逗比代码而无响应,在弹出 WER ,可以让用户选择重启或退出等。无论选择什么,都可以让应用有机会弹出 应用程序炸掉 提示。...MessageBox.Show("应用程序炸掉"); } } 在启动的时候判断是否有命令行,有的话,就显示命令行的内容。...大概在进入此方法还能使用 5 分钟最多。...static ApplicationRecoveryCallback _recoverApplication; /// /// 向WER注册应用程序重启机制

74830

使用 deadcode 查找 Go 程序中的从未使用函数

“hello”: $ go run .hello从输出中可以明显看出,此程序仅执行 hello 函数,没有执行 goodbye 函数。...当我们在该项目上运行 deadcode ,该工具告诉我们 goodbye 函数和 Goodbyer.Greet 方法都是未使用的: $ deadcode .greet.go:23: unreachable...它使用称为 Rapid Type Analysis (RTA) 的算法来建立可达函数的集合,最初仅为每个主包的入口点:main 函数和包初始化器函数,该函数分配全局变量并调用名为 init 的函数。...当我们遇到每个新的可达函数,我们会发现更多的接口方法调用和将具体类型转换为接口类型的情况。但是随着这两个集合的交叉乘积(接口方法调用 × 具体类型)不断增长,我们会发现新的可达函数。...使用反射进行的调用被认为能够到达通过接口转换使用的任何类型的任何方法,或者通过 reflect 包从一个类型派生的任何类型。但在所有情况下,原则都是相同的。 测试RTA 是一种整体程序分析。

34910

Excel公式技巧81:查找数字,可以考虑使用SUMIFS函数

我们在查找值,通常会想到VLOOKUP函数,或者INDEX/MATCH函数。 VLOOKUP函数在指定区域的首列查找值,并返回指定列中对应的值。INDEX函数基于指定的行号列标从单元格区域中返回值。...MATCH函数返回要查找的值的行号或列标。其中,INDEX函数和MATCH函数常常配合使用,MATCH函数负责查找指定值的行号列标,INDEX函数根据行号列标返回相应的值。...其实,如果想要获取的值是一个数字,可以考虑使用SUMIFS函数;而如果想要获取的值是其它类型,例如文本,则考虑使用传统的查找函数(VLOOKUP函数、INDEX函数、MATCH函数)。...2.当存在多个相匹配的值,VLOOKUP函数仅返回第一个相匹配的值,而SUMIFS函数返回所有匹配项之和。...鉴于上述描述,当需要返回的值是数字,我们可以考虑使用SUMIFS函数执行典型的使用传统查找函数所执行的任务。

1.8K10

程序云开发之云函数使用

程序云开发之云函数使用 1、云函数 1.1 云函数API和云函数创建 1.1.1 小程序函数API接口 1.1.2 云函数的创建 2、云函数案例 1、云函数   云函数是部署在云端的函数,他和小程序本地的函数存在很大的区别...1.1 云函数API和云函数创建 1.1.1 小程序函数API接口   小程序函数API接口是指小程序调用云端函数的接口,(和wx.request()类似)。...小程序提供了wx.cloud.callFunction()接口作为云函数API接口,它的属性如表所示。...}   在小程序端发起对云函数 add 的调用: wx.cloud.callFunction({ // 要调用的云函数名称 name: 'add', // 传递给云函数的event参数...使用回车结束云函数的创建还有一个好处是可以不用上传和部署云函数,系统会自动上传和部署函数到云端,即云函数对应的文件夹图标会自动变成云朵摸样。

1.7K41

善用云函数,开源节流,小程序后端使用函数案例

背景   随着serverless越来越流行,越来越多的中小型企业,个人开发者开始接纳并使用这样一个简单,灵活的平台。由于不用自己运维服务器,不用自己考虑系统负载问题,可以为企业节省不少成本。...那么这种情况不仅仅需要维护服务器,考虑扩缩容,还需要前后端程序员去配合开发,无论是人力还是物力消耗都比较大。...这种情况特别适合使用函数,可以一个活动对应一个函数,公共代码使用层的形式解决,该公司一年当中有旺季也有淡季,云函数只有使用才需要付费,支持动态扩缩,人力物力成本大大降低。...方案设计   用户可以选用自己熟悉的nodejs框架,这里以Express.js为例,对于每个活动创建一个云函数,例如: # serverless.yml component: express # (必填...使用函数后整体架构图如下: image.png

1K30

【Linux程序设计】之Linux库函数使用,多文件程序开发,静态与共享函数

这个系列的博客贴的都是我大二的时候学习Linux系统高级编程的一些实验程序,都挺简单的。贴出来纯粹是聊胜于无。...实验题目:Linux基础程序设计综合实验 实验目的:熟悉并掌握Linux库函数使用,多文件程序开发,静态与共享函数库的制作,Makefile文件编写以及gdb调试等。...一、基于库函数使用的多文件程序开发 设计程序,满足如下要求: 1、程序包含5个文件,myfirst.c, mysqrt.c, mysqrt.h, mypow.c mypow.h 2、myfirst.c为主程序...5、使用gcc对程序编译,生成满足题目要求的可执行文件myfirst。注意:编译,需指定数学函数库。...注意:使用共享库编译和运行源程序时,均需考虑函数库的路径问题。

1.1K20

全志V85x芯片 如何使用tiger lcdlti锐化功能程序abort?

1.主题 使用tiger lcdlti锐化功能程序abort 2.问题背景 产品:T113 软件:tina5.0 其他:使用tiger lcd调试lti参数 3.问题描述 3.1复现步骤 m kerne_menuconfig...电脑端打开tiger lcd,点击open后切换到lti调试界面,调节参数后点write写入 3.2具体表现 下位机程序abort退出,结果如图所示。...4.问题分析 unsorted double linked list corrupted表明malloc链表的被破坏,找不到下一个节点,该问题可能是越界写内存导致。...可以选择使用libasan进行调试,需要在Makefile中加入如下选项, 并且在menuconfig按照如下方式配置 Base system ---> [*] Use external...LTI_REG_NUM 6.解决办法 修改platform/allwinner/display/pqd/hardwares/de20x/de20x.c中de20x_set_lti和de20x_get_lti函数

8510

WPF内存优化

许多控件创建,一些内存WeakReference对象和容纳数组空格被泄漏后垃圾回收释放该控件。 运行使用树视图控件或控件派生于的 WPF 应用程序,选择器类。...用法:只需要在你希望释放的时候调用FlushMemory()即可 事实上,使用函数并不能提高什么性能,也不会真的节省内存。...因为他只是暂时的将应用程序占用的内存移至虚拟内存,一旦,应用程序被激活或者有操作请求,这些内存又会被重新占用。...当然,该函数也并非无一是处: 当我们的应用程序刚刚加载完成,可以使用该操作一次,来将加载过程不需要的代码放到虚拟内存,这样,程序加载完毕后,保持较大的可用内存。...程序运行到一定时间后或程序将要被闲置,可以使用该命令来交换占用的内存到虚拟内存。 注意 这种方式为缓兵之计,物理内存中的数据转移到了虚拟内存中,当内存达到一定额度后还是会崩溃

1.5K41
领券