之前做数据库相关题目的时候,被一道有关转储文件的题给难住了,这转储文件到底是什么啊!不行,我得把它弄懂!愣着干嘛!这种求知若渴的精神不值得点赞吗?
一、概念
转储文件,又叫dump文件。简单来说,转储文件是进程某一时刻的快照。
微软官方对转储文件的定义是这样的:转储文件是应用程序在进行转储那一时刻的快照。它显示了正在执行的进程以及已加载的模块。如果转储时保存了堆信息,则转储文件将包含该时间点应用程序的内存快照。在Visual Studio中打开包含堆信息的转储文件就像调试会话中的在断点处停止一样。尽管无法继续执行,但是可以查看应用程序在发生转储时的堆栈,线程和变量值。
转储文件一般都是在软件出现问题时手动生成或者程序自动生成。
二、转储文件的作用
可能相对于那一长串的概念,你更关心这个转储文件是做什么的,发挥着什么样的作用。
当程序发布后,总是会出现一些问题的,比如出现崩溃、死锁、功能异常等情况的时候,我们需要调试分析,但有时候并不适合实时调试,最好可以在出现问题的时候抓取转储文件,供我们事后分析。
以下三种情况不适合做实时调试:
- 程序在客户机器上出问题了,但是限于条件,我们不能在客户机器上调试。
- 某个bug很难重现,有时候运行几天后才会出现,我们需要在问题出现的时候保存相关信息。
- 我们发布的是服务器端的程序。程序故障后,我们需要尽快恢复服务,不能长时间让服务进程处于 “宕机” 状态。
关于转储文件的作用,