在调试非托管(本机)C ++程序时,每当我尝试在Watch中或在跟踪点中计算表达式或在“立即”窗口中执行任何操作时,都会收到错误“发生了未指定的错误”。工具提示评估程序也不起作用。显示变量的唯一窗口是“Locals”; “Autos”窗口为空。以下是Watch中的样子:
在两台不同的计算机上出现此问题(因此不太可能出现配置问题),但仅限于一个特定的解决方案。这个项目最近从Visual C ++ 2008迁移,一切都很好。显然,我确保调试信息存在,并且优化已关闭。重建所有没有帮助谷歌一无所知。
我该怎么办?
----------- 编辑2: -----------
我成功地解决了这个问题。似乎调试器无法检查名为“NI”的命名空间中的类方法中的变量。要重现该问题,请编译此代码并在指示的位置放置断点。 Watch窗口不起作用。
namespace NI
{
class Test
{
public:
static void helloworld();
};
void Test::helloworld()
{
int i = 0; // <------- insert breakpoint here
}
}
int _tmain(int argc, _TCHAR* argv[])
{
NI::Test::helloworld();
return 0;
}
我向微软提交了一份错误报告。
答案 0 :(得分:2)
微软证实这是Visual C ++ 2012中的一个错误。这是一个罕见的情况,当时我不是那个应该责备的人......