试图调试简单代码时,源代码不可用

Source Not Available while trying to debug simple code

本文关键字:源代码 调试 简单 代码      更新时间:2023-10-16

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

源不可用

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

(这是整个屏幕的图片)

我在网上到处看,我发现的唯一"解决方案"是移动断点,这不是一个真正的解决方案,我能做些什么来解决这个问题?谢谢。

(Windows 8.1, Visual Studio 2013)

下面是析构函数的代码,在屏幕出现前一步:

MatchmakingAgency::Node::~Node(){
    cout << "Deleting: ";
    getClient()->printName();
    cout << endl;
    if (next){
        delete next;
    }
}

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

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

关于为什么会发生这种情况,可能是Visual Studio破坏了helper函数(故障?)或者您在实际析构函数代码执行之前进入了该函数。

如果这让你感到困扰,你也可以看看断点宏,看看它是否有帮助(如果在析构函数的第一行设置断点没有帮助,请尝试跳过标量删除析构函数)

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