在调试时,如果(并且仅当)我的节点析构函数中有一个断点,我会看到这个屏幕:
来源不可用
此模块的调试信息中缺少源信息。 您可以在“反汇编”窗口中查看反汇编。要始终查看缺失源文件的反汇编,请更改“选项”对话框中的设置。
(Here is a picture of the whole screen)
我在网上到处寻找唯一的解决方案"我发现正在移动断点,这不是一个真正的解决方案, 我该怎么做才能解决这个问题?感谢。
(Windows 8.1,Visual Studio 2013)
这是析构函数的代码,它是屏幕出现之前的一步:
MatchmakingAgency::Node::~Node(){
cout << "Deleting: ";
getClient()->printName();
cout << endl;
if (next){
delete next;
}
}
答案 0 :(得分:0)
正如评论中所写,你正在进入帮助析构函数的标量(由Visual Studio为析构函数设置的辅助函数)。您也可以从调用堆栈中看到这一点。
使用 Shift + F11 退出,可以直接进入析构函数的代码。
关于为什么会发生这种情况,可能是因为Visual Studio正在进入辅助函数(故障?),或者在实际的析构函数执行之前通过单步进入该函数。
如果这让你烦恼,你也可以看一下breakpoint macros,看看是否有帮助(如果在析构函数的第一行放置一个断点,那么尝试逐步删除析构函数)< / p>
答案 1 :(得分:0)
您可以在Visual Studio中显示堆栈窗口(调试 - &gt; Windows - &gt;调用堆栈或 Ctrl + Alt + C 2013)然后双击代码中的堆栈框架,以查看代码中发生中断的位置。