尝试在 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
已启用
之后,您可以清理 > 构建您的项目并设置一些断点,然后进行调试,如果遇到断点,请尝试重新使用这些工具。
我正在学习 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
已启用
之后,您可以清理 > 构建您的项目并设置一些断点,然后进行调试,如果遇到断点,请尝试重新使用这些工具。