我用 vs2010 创建了一个简单的 win32 控制台程序并创建了一个空解引用:
int _tmain(int argc, _TCHAR* argv[])
{
if (*(int*)(NULL) == 5) {
printf("foo");
}
return 0;
}
当我使用x64
配置运行它时,我在调试器中得到一个“未处理的异常”和有效的调用堆栈。当我切换到 时win32
,我仍然得到一个“未处理的异常”,但是,堆栈是无效的。我得到以下信息:
ntdll.dll!770a15de()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!770a15de()
ntdll.dll!7709014e()
>msvcr100d.dll!_heap_alloc_dbg_impl(...)
ffffffff()
任何想法这里发生了什么以及我如何纠正它?