调试器试图再次打电话

来源:互联网 发布:淘宝产品标题怎么写 编辑:程序博客网 时间:2024/05/21 06:52
单步执行是一种调试器功能,它允许您逐行执行(逐步执行)代码行。这允许您孤立地检查每一行代码,以确定它是否按预期的方式运行。


实际上有3种不同的步进指令:单步执行、单步执行、逐步退出。我们将依次讨论每一个问题。


步进


进入命令执行下一行代码。如果该行是函数调用,则“进入”进入函数并返回函数顶部的控件。


让我们来看一个非常简单的程序:

3456789101112#include <iostream> void printValue(int nValue){    std::cout << nValue;} int main(){    printValue(5);    return 0;}
你知道的,运行程序时,执行一开始就调用main()。因为我们想调试main()里面,我们开始用“进入”命令。


在Visual Studio 2005 Express,去“调试”菜单并选择“进入”,或按F11。
如果您使用的是不同的IDE,请在菜单中找到“进入”命令并选择它。


当你这样做的时候,应该发生两件事。首先,因为我们的应用程序是一个控制台程序,控制台输出窗口应该打开。它将是空的,因为我们还没有输出任何东西。第二,你应该看到一些标记出现在左边的主支架的左边。在Visual Studio 2005 Express中,这个标记是一个黄色箭头。如果您使用的是不同的IDE,那么您应该看到具有相同用途的东西。
3456789101112#include <iostream> void printValue(int nValue){    std::cout << nValue;} int main(){    printValue(5);    return 0;}

虽然你可能认为,调试器试图再次打电话printvalue(),实际上调试器只是让你知道,它是从函数调用返回。


选择“再踏进”两次。在这一点上,我们已经执行了我们程序中的所有行,所以我们完成了。一些调试器将终止调试会话自动在这一点上。Visual Studio没有,所以如果您使用VisualStudio,请从“调试”菜单中选择“停止调试”。这将终止调试会话。


注意,调试过程中的任何一点都可以使用“停止调试”以结束调试会话。


步过


与“单步执行”一样,“单步执行”命令执行下一行代码。如果该行是一个函数调用,则“单步执行”执行函数中的所有代码,并在函数执行后将控件返回给您。


代码说明::阻塞用户:在代码::块,“单步执行”被称为“下一行”。


让我们来看一个使用上述程序的示例:

原创粉丝点击