C++ C++;MiniDumpWriteDump-FullMemoryDump不';I don’我不能给我太多的信息

C++ C++;MiniDumpWriteDump-FullMemoryDump不';I don’我不能给我太多的信息,c++,visual-studio,minidumpwritedump,C++,Visual Studio,Minidumpwritedump,我一直在使用MiniDumpWriteDump在崩溃时生成转储文件。我一直在尝试做一个完整的内存转储。这似乎可行,并按预期生成一个大文件 然而,当我将这个巨大的文件加载到VisualStudio(2005)中时,我似乎无法看到堆上任何变量的值。事实上,它没有给我更多的信息比正常转储 我对MinidumpWriteUp的调用如下: MINIDUMP_EXCEPTION_INFORMATION mdi; mdi.ThreadId = GetCurrentThreadId(); mdi.Except

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

然而,当我将这个巨大的文件加载到VisualStudio(2005)中时,我似乎无法看到堆上任何变量的值。事实上,它没有给我更多的信息比正常转储

我对MinidumpWriteUp的调用如下:

MINIDUMP_EXCEPTION_INFORMATION mdi;

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

MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),
    fHan,
    MiniDumpWithFullMemory,
    &mdi,
    0,
    0);
注意:我有一套完整的pdb,一个有效的堆栈,在我的测试应用程序中,我用一个除以零的方法伪造了一个错误

知道为什么吗

干杯
Rich

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


你自己选。

你试过WinDbg吗?它在那里工作吗?有什么结果吗?我正在测试这个应用程序,所以我伪造了一个除以零的数字。堆栈完好无损,pdb均已加载且正确。但是我看不到任何堆或全局变量的值。请用这样的重要信息更新您的问题。不提前说这件事只是浪费大家的时间。您还需要准确记录您使用的minidumpWriteDomainp()标志以及“看不见”的含义。