gpt4 book ai didi

debugging - 创建内存.dmp 文件后是否可以调整大小?

转载 作者:行者123 更新时间:2023-12-02 22:23:34 24 4
gpt4 key购买 nike

我觉得问这个问题有点懒,但我似乎无法调出正确的谷歌查询来找到我的问题的答案。

一些背景知识。我有一个应用程序,可以监视其他进程是否有未处理的异常和崩溃等。触发时,该应用程序会收集系统信息并使用 MiniDumpWriteDump 创建一个 memory.dmp 文件。

我们现在希望这个进程监视器应用程序将崩溃数据上传到服务器,但显然内存.dmp 文件可能很大,这是不适合上传的。因此,我们发现我们可以在创建内存.dmp 时减小它的大小(如果我们不包含重要的信息,则可能会使内存.dmp 变得无用),或者最终不得不上传大量文件。

无论如何,在我们创建了 memory.dmp 之后,它可以被打开,完成一些初步分析(我知道这一点是可能的),并且 memory.dmp 的任何位被认为没有用,被删除/编辑输出(以及上传的较小的 memory.dmp 副本)?

例如,我所说的 memory.dmp 的“位”是指。删除有关已卸载模块的句柄数​​据或信息。请参阅MINIDUMP_TYPE enumeration

最佳答案

选择Lieven Keersmaekers首先的建议。实际上,您希望在转储中保留尽可能多的数据以供以后分析,因此如果压缩转储就足够了,请首先执行此操作。

为了更直接地回答问题...

如果压缩还不够,可以使用一个鲜为人知的技巧来缩小转储文件,其唯一提及的内容隐藏在文档 here 中。 .

Shrinking an Existing Dump File

CDB and WinDbg can also be used to shrink a dump file. To do this,begin debugging an existing dump file, and then use the .dump commandto create a dump file of smaller size.

因此,如果您有使用 .dump/ma 获取的转储文件,那么您可以通过打开该转储文件并使用 .dump/mhi 来缩小它。选择 minidump options为您提供最佳的可用性与尺寸权衡。 i 选项是一个不错的选择,可以仅引入堆栈引用的堆内存。

警告:您的里程可能会因这种技术而有所不同。对于 32 位转储,我已经成功地使用了这个技巧。 64 位转储对我来说有点愚蠢,完全忽略了我传入的小型转储选项。

关于debugging - 创建内存.dmp 文件后是否可以调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com