Visual Studio 调试系列5 检查变量(使用自动窗口和局部变量窗口)

在调试时,“自动变量”和“局部变量”窗口会显示变量值。 仅在调试会话期间,这两个窗口才可用。 “自动变量”窗口显示当前断点周围使用的变量。 “局部变量”窗口显示在局部范围内定义的变量,一般是当前函数或方法。html

若要打开“自动变量”窗口,请在调试时依次选择“调试” > “窗口” > “自动变量”,或按 Ctrl+Alt+V > A 调试。数组

若要打开“局部变量”窗口,请在调试时选择“调试” > “窗口” > “局部变量”,或按 Alt+4。函数

01 使用自动和局部变量窗口
数组和对象在“自动变量”和“局部变量”窗口中显示为树形控件。 选择变量名称左侧的箭头可展开视图,以显示字段和属性。

“局部变量”或“自动变量”窗口中的红色值表示自上次评估后值已更改。 此更改多是在上一个调试会话中进行的,也多是在窗口中更改了值。
 当集合中加入一条记录时,sharps 对象的 Count 属性发生变动,因此用红色标注。

调试器窗口中的默认数字格式为十进制。 若要将其更改成十六进制,请在“局部变量”或“自动”窗口中右键单击,而后选择“十六进制显示”。 此更改会影响全部调试器窗口。工具

02 编辑自动或局部变量窗口中的变量值

若要编辑“自动”或“局部变量”窗口中大多数变量的值,请双击该值并输入新值。spa

编辑完成后,按下回车键即生效,红色标注。线程

你能够输入表达式做为一个值,例如 a + b。 调试器接受大多数合法的语言表达式。3d

在更改值和表达式以前,请确保你了解其后果。 一些可能存在的问题有: 调试

(1)计算某些表达式可能会更改变量的值或以其余方式影响程序的状态。 例如,计算 var1 = ++var2 会更改 var1 和 var2 的值。听说这些表达式具备反作用。 若是你不了解这些反作用,则可能会致使意外结果。code

(2)编辑浮点值时,因为要将小数部分从十进制转换为二进制,所以所得的结果可能存在微小偏差。 htm

         甚至看起来可有可无的编辑都能引发浮点变量中的位的某些更改。

03 在自动或局部变量窗口中搜索

您能够搜索的名称、 值和类型的列中的关键字自动或局部变量使用上面的每一个窗口的搜索栏的窗口。 按 ENTER 或选择其中一个箭头,以执行搜索。 若要取消正在进行的搜索,请在搜索栏中选择"x"图标。

使用左右箭头键 (Shift + F3 和 F3,分别) 之间进行导航找到匹配项。

 若要使搜索更多或更少全面,使用搜索更深刻地顶部的下拉列表中自动或局部变量窗口可选择要搜索到的层深度嵌套的对象。

04 更改“自动”或“局部变量”窗口的上下文

可以使用“调试位置”工具栏选择所需的函数、线程或进程,这将更改“自动”和“局部变量”窗口的上下文。

若要启用调试位置工具栏上,单击工具栏区域和选择的空白部分调试位置从下拉列表中或选择视图 > 工具栏 > 调试位置。

设置断点并开始调试。 命中断点时,执行暂停,你能够在“调试位置”工具栏中看到相应位置。

05 查看方法调用的返回值

在.NET 和 C ++ 代码中,当单步调试或退出方法调用时,能够在“自动”窗口中检查返回值若是方法调用返回值未保存在局部变量中,查看这些返回值会很是有用。 方法能够用做参数或用做另外一种方法的返回值。

例如,下面的 C# 代码将添加两个函数的返回值:

 1 static void Main(string[] args)  2 {  3     int a, b, c, d;  4     a = 1;  5     b = 2;  6     c = 3;  7     d = 4;  8     int x = sumVars(a, b) + subtractVars(c, d);  9     
10     Console.WriteLine("Press any key to exit."); // 在调试模式下保持控制台打开
11  Console.ReadKey(); 12 } 13 
14 private static int sumVars(int i, int j) 15 { 16     return i + j; 17 } 18 
19 private static int subtractVars(int i, int j) 20 { 21     return j - i; 22 }

要在“自动”窗口中查看 sumVars() 和 subtractVars() 方法调用的返回值,请执行如下操做:

  1. 在 int x = sumVars(a, b) + subtractVars(c, d); 行上设置断点。

  2. 开始调试,当执行在断点处暂停时,选择“单步跳过”或按 F10。 应该在“自动”窗口中看到如下返回值:

相关文章
相关标签/搜索