尝试调试简单代码时源不可用

时间:2014-08-24 20:19:34

标签: c++ visual-c++

在调试时,如果(并且仅当)我的节点析构函数中有一个断点,我会看到这个屏幕:

  
    

来源不可用

         

此模块的调试信息中缺少源信息。     您可以在“反汇编”窗口中查看反汇编。要始终查看缺失源文件的反汇编,请更改“选项”对话框中的设置。

  

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;
    }
}

2 个答案:

答案 0 :(得分:0)

正如评论中所写,你正在进入帮助析构函数的标量(由Visual Studio为析构函数设置的辅助函数)。您也可以从调用堆栈中看到这一点。

使用 Shift + F11 退出,可以直接进入析构函数的代码。

关于为什么会发生这种情况,可能是因为Visual Studio正在进入辅助函数(故障?),或者在实际的析构函数执行之前通过单步进入该函数。

如果这让你烦恼,你也可以看一下breakpoint macros,看看是否有帮助(如果在析构函数的第一行放置一个断点,那么尝试逐步删除析构函数)< / p>

答案 1 :(得分:0)

您可以在Visual Studio中显示堆栈窗口(调试 - &gt; Windows - &gt;调用堆栈或 Ctrl + Alt + C 2013)然后双击代码中的堆栈框架,以查看代码中发生中断的位置。