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

时间:2010-02-19 12:29:45

标签: 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,一个有效的堆栈,在我的测试应用程序中,我假装误差为零。

知道为什么会这样吗?

干杯 富

1 个答案:

答案 0 :(得分:2)

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

选择。