借助 .NET 4.0 中的转储调试支持,我们正在自动研究(当然是在询问用户之后:)创建 C# 程序崩溃的小型转储,以将它们上传到我们的问题跟踪系统(以便小型转储可以帮助解决问题的原因)碰撞)。
使用 WithFullMemory 小型转储类型时一切正常。我们可以看到堆栈和堆变量。不幸的是,即使对于小型 C# 程序,(压缩的)转储也非常大。
如果我们使用“Normal”小型转储类型,我们会得到一个非常小的转储,但托管调试器中甚至没有堆栈变量信息。事实上,任何低于 WithFullMemory 的东西在托管调试器中似乎都毫无用处。我们曾尝试使用 MINIDUMP_CALLBACK_ROUTINE 将包含的模块信息限制在我们自己的模块中,但似乎它对托管转储几乎没有影响,但仍然设法破坏托管调试?
有没有人有关于如何修剪小型转储同时保持它对托管调试有用的任何提示?