为什么我的VC 2005 x64调试会话在第一次试用时总是失败(但不是第二次试用)?

时间:2009-07-27 10:54:56

标签: c++ visual-studio debugging 64-bit

我有一个在Win32和x64版本(使用Windows XP x64)中运行的大型C ++应用程序。在调试x64版本时,在每个代码更改第一个调试会话后,我开始用

停止

myapp.exe中0x77ee5f3c处的未处理异常: 0xC0000005:访问冲突写入位置0x0000000000030c90。

callstack在ntdll中显示无限递归调用:

ntdll.dll!0000000077ee5f46()    
ntdll.dll!0000000077ef31ed()    
ntdll.dll!0000000077efbc0b()    
ntdll.dll!0000000077f2539e()    
ntdll.dll!0000000077ee5f46()    
ntdll.dll!0000000077ef31ed() 
 etc.   

在此之后我选择“停止调试”然后“开始调试”通常一切都很好,直到我编译一些代码和链接或者重新启动Visual Studio时才会再次出现问题。

1 个答案:

答案 0 :(得分:1)

您列出的地址是32位地址。这表明VS正在尝试在32位进程上使用其64位调试器。

您的解决方案中可能混合使用了'Win32','x64'和'Any CPU'构建平台。确保始终定义“活动构建平台”。 .net的东西声称表面上有“任何cpu”,它下面有一些32位操作的亲和力。

关闭“编辑并继续”调试似乎也有助于此类事情。