C++ MiniDumpWriteDump - FullMemoryDump 没有给我太多信息

标签 c++ visual-studio minidumpwritedump

我一直在使用 MiniDumpWriteDump 在崩溃时生成转储文件。我一直在尝试进行完整的内存转储。这似乎有效,并按预期生成了一个大文件。

但是,当我将这个巨大的文件加载到 Visual Studio (2005) 中时,我似乎无法看到堆上任何变量的值。事实上,它没有给我比普通转储更多的信息.​​.....

我对MiniDumpWriteDump的调用如下;

MINIDUMP_EXCEPTION_INFORMATION mdi;

mdi.ThreadId = GetCurrentThreadId();
mdi.ExceptionPointers = in_pInfo;
mdi.ClientPointers = FALSE;

MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),
    fHan,
    MiniDumpWithFullMemory,
    &mdi,
    0,
    0);

注意:我有一套完整的 pdb,一个有效的堆栈,并且在我的测试应用程序中,我伪造了一个除以零的错误。

知道这是为什么吗?

干杯 丰富

最佳答案

可能是因为您没有正确的 .pdb 文件。或者因为您的代码已经通过优化器版本的 RSA 加密。或者因为你有 x64 构建,其中指针在寄存器中传递。或者因为您的代码因堆损坏而崩溃,使调试信息同样不可靠。或者崩溃线程的堆栈被炸毁,没有面包屑可追踪。

任你选。

关于C++ MiniDumpWriteDump - FullMemoryDump 没有给我太多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296222/

相关文章:

c++,尾随逗号如何不是错误,会发生什么?富 x, y,;

c++ - 将可调用的 std::function() 重定向到 C++11 之前的自定义处理程序?

types - MiniDumpWriteDump 及其 MINIDUMP_TYPE 类型

.net - 最小 MINIDUMP_TYPE 设置为转储托管 .net 组件的 native C++ 进程是什么,以便能够在 windbg 中使用 !clrstack

c++ - 防止在 printf C C++ 中打印符号

c++ - 使用 Linux 伪终端测试 QSerialPort

visual-studio - 在 VS 2017 上停止调试时如何阻止浏览器自动关闭

c++ 没有这样的文件或目录 - Visual Studio

c# - .NET Core 应用程序中的 .NET Framework 依赖项