退回所有调试点的按键
Keys to step back all the debugging points
我想知道在 vs 2017 中调试 c sharp 代码时退一步的关键步骤。
例如,我在函数中放置了一个断点。调试时,程序会在此断点处命中。但是从那个断点开始,我如何才能跳回到代码中的所有调用点?像 'Ctrl' 和 '-' 键。我想知道这是从哪里调用的。像那样回溯。
你所追求的是Call Stack。
假设我们有这个程序:
public static class Program
{
private static int something;
public static void Main()
{
One();
Console.Read();
}
private static void Three()
{
something = 3;
Four();
}
private static void Four()
{
something = 4;
}
private static void Two()
{
something = 2;
Three();
}
private static void One()
{
something = 1;
Two();
}
}
假设我们在 Four()
中有一个断点,调试器停在那里,如果我们查看调用堆栈 window,它将如下所示:
我们可以单击并转到调用堆栈历史记录中的任何一点。最好的部分是,当您单击 One()
时,它将显示 something
在调用堆栈中该点的值;所以虽然我们在 Four()
并且 something
的值为 4,但如果您跳转到 One()
,该值将显示为零。
键盘快捷键,请参考this thread。
我想知道在 vs 2017 中调试 c sharp 代码时退一步的关键步骤。 例如,我在函数中放置了一个断点。调试时,程序会在此断点处命中。但是从那个断点开始,我如何才能跳回到代码中的所有调用点?像 'Ctrl' 和 '-' 键。我想知道这是从哪里调用的。像那样回溯。
你所追求的是Call Stack。
假设我们有这个程序:
public static class Program
{
private static int something;
public static void Main()
{
One();
Console.Read();
}
private static void Three()
{
something = 3;
Four();
}
private static void Four()
{
something = 4;
}
private static void Two()
{
something = 2;
Three();
}
private static void One()
{
something = 1;
Two();
}
}
假设我们在 Four()
中有一个断点,调试器停在那里,如果我们查看调用堆栈 window,它将如下所示:
我们可以单击并转到调用堆栈历史记录中的任何一点。最好的部分是,当您单击 One()
时,它将显示 something
在调用堆栈中该点的值;所以虽然我们在 Four()
并且 something
的值为 4,但如果您跳转到 One()
,该值将显示为零。
键盘快捷键,请参考this thread。