0
点赞
收藏
分享

微信扫一扫

dump方式保留程序崩溃现场

愚鱼看书说故事 2022-05-01 阅读 51

背景

软件开发debug里,崩溃转储成为了调试工作的一个重要部分。如果软件在客户现场或者测试实验室发生故障,最有价值的解决方式是能够创建一个故障瞬间的应用程序状态镜像,然后可以在开发者的机器上通过调试器进行分析。这个镜像就是crash dump file。

当然生成dump file的同时,我们也会打印log,将故障现场的log同时生成辅助分析。可以说,如果你不知道你的客户端跑成啥样,只要你远程收集到log和dump file就可以分析解决bug。

Full dump

最早之前crash dump通常被称为“全用户转储(full user dump)”,我们也经常称full dump,它包含了进程的虚拟内存的全部内容。毫无疑问,这样的dump对于事后调试非常有价值。但是,这样的dump经常非常大,使得通过电子方式发送给开发者非常困难,甚至没法完成。特别是我们拥有非常多的用户时,想通过服务器远程本地客户端自动上传到服务器,这个时候就需要非常大的带宽以及用户本地的流量,很明显这是不明智的。

Dbghelp里Minidump的生成文件里有个参数也可以将整个内存保存下来,具体接口可以参照下面

Minidump

很明显我们需要比较微小型的dump文件生成,后来微软发布了一组新的被称为"minidump"的崩溃转存技术。Minidump很容易定制。按照最常用的配置,一个minidump只包括了最必要的信息,用于恢复故障进程的所有线程的调用堆

举报

相关推荐

0 条评论