我一直在使用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集,一个有效的堆栈,并且在我的测试应用程序中,我用除以零来伪造一个错误。
知道为什么会这样吗?
干杯Rich
发布于 2010-02-19 20:52:07
可能是因为您没有正确的.pdb文件。或者是因为您的代码已经通过了优化器版本的RSA加密。或者因为您有x64构建,其中指针在寄存器中传递。或者是因为您的代码由于堆损坏而崩溃,使得调试信息同样不可靠。否则这堆破碎的线就会被吹掉,没有面包屑可追踪了。
选你所选。
https://stackoverflow.com/questions/2296222
复制相似问题