继续,单步进入,退出。
我希望更好地理解在调试器中按下这些按钮时会发生什么。
有很多语言&工具特定的调试器条目,但我找不到该功能的一般说明。
答案 0 :(得分:0)
简单地说,这是你通过调试器一次一行地推进(“步骤”)代码的方式。以下是使用Visual Studio调试器的示例。
假设您有以下代码:
public static void Main(string[] args)
{
int x = 4;
M(x);
}
private static void M(int x)
{
Console.WriteLine(x);
}
假设您在M(x)
行放置断点。当调试器停止(“中断”)时,您现在有3个选项:
<强> 1。跳过(F10)
如果按F10,您将步骤 行M(x)
。调试器将执行此方法,但您不会进入它。在控制台输出中,您将看到4
。
<强> 2。步入(F11)
如果按F11,调试器将带您在 M()方法中,允许您在M()方法内单步(使用F10或F11)。如果按住F11,您将输入其他方法(前提是您有源代码)
第3。退出(Shift-F11)
您可以按Shift-F11步进当前方法的 out ,而不是单步执行一行,然后返回调用方法。在这种情况下,如果您在M()
方法内按Shift-F11,则会返回到调用Main()
方法。
我希望这更清楚。
P.S。这不是Visual Studio特定的,而是调试的一般概念。使用调试器,您始终可以单步执行指令,即代码行或汇编指令。跳过/进/出是你会在每个调试器中找到的概念,它们都意味着同样的事情。
一些调试器允许您执行其他操作,例如运行到选定行。以下是有关Visual Studio调试功能的更多信息:http://msdn.microsoft.com/en-us/library/y740d9d3.aspx
答案 1 :(得分:0)
这将是特定于IDE的,因此您的问题的目标是过于宽泛。
但总的来说,这就是这些术语的含义。
调试代码时,如果当前行是对函数的调用,请将其称为M(y)。
如果您单步执行,则调试器将开始步入函数M(y)。
如果选择Step Over,那么函数M(y)将被执行,调试器将在调用函数M(y)后停在下一行。
Step Out仅在您已经在M(y)内时才有效。让我们假设您处于M(y)的中间,并且您意识到错误不存在,并且您希望在调用M(y)之后继续执行第一行代码。当你选择Step Out时就是这样。
同样,这将因IDE而异,但根据我的经验(超过11个IDE),这是标准行为。