尝试在 Visual Studio 2019 年使用调试工具会导致出现 "Source Not Available" 屏幕

Attempting to use debug tools in Visual Studio 2019 results in "Source Not Available" screen

我正在学习 C++,其中一部分是学习如何调试。我的代码按编写的方式工作,但我希望能够逐行执行它。我可以很好地开始调试,但我不能使用调试工具“显示下一条语句”、“进入”或“跳过”。它们都显示一个屏幕,上面写着“源不可用;此模块的调试信息中缺少源信息。”我不知道缺少什么来源。该程序中只有一个文件。我在网上查了一下,发现可能缺少一些符号文件。所以我进入选项 > 调试 > 符号并单击“加载所有符号”。显然这并没有解决问题。同样,我很确定 my 代码不是问题所在,否则一切正常。

参考代码:

#include <iostream>

int getUserInput() {
    std::cout << "\nEnter an integer: ";
    int input;
    std::cin >> input;

    return input;
}

std::string getOperator() {
    std::cout << "\nEnter an operator: ";
    std::string input;
    std::cin >> input;

    return input;
}

int calculateResult(int x, std::string sign, int y) {
    if (sign == "*") {
        return x * y;
    }
    else if(sign == "/"){
        return x / y;
    }
    else if (sign == "-") {
        return x - y;
    }
    else if (sign == "+") {
        return x + y;
    }
}

void displayResult(int x, std::string y, int z, int r) {
    std::cout << x << y << z << " = " << r;
}

int main() {
    int num1{ getUserInput() };
    std::string sign(getOperator());
    int num2{ getUserInput() };
    int result{ calculateResult(num1, sign, num2 ) };
    displayResult(num1, sign, num2, result);
}

同样,我知道没有必要调试这段代码,更多的是了解如何使用这些工具。由于我不会使用这些工具,所以我无法学习如何使用它们。

更新1:看来如果我从调试菜单中点击“step into”开始调试,我就可以使用前面提到的工具了。这是一些奇怪的行为。

您可以确认这些选项:

  • 项目属性 > C/C++ > 常规 > 调试信息格式,已选择 Program Database for Edit And Continue (/ZI)
  • 在 visual studio 中,菜单调试 > 选项 > 常规,Enable Just My code 已启用

之后,您可以清理 > 构建您的项目并设置一些断点,然后进行调试,如果遇到断点,请尝试重新使用这些工具。