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

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

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

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

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

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

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

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

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

你可以输入表达式作为一个值,例如 a + b。 调试器接受大多数合法的语言表达式。

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

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

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

甚至看起来无关紧要的编辑都能引起浮点变量中的位的某些更改。

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

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

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

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

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

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

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

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

05 查看方法调用的返回值

在.NET 和 C ++ 代码中,当单步调试或退出方法调用时,可以在“自动”窗口中检查返回值如果方法调用返回值未保存在局部变量中,查看这些返回值会非常有用。 方法可以用作参数或用作另一种方法的返回值。

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

 static void Main(string[] args)
{
int a, b, c, d;
a = ;
b = ;
c = ;
d = ;
int x = sumVars(a, b) + subtractVars(c, d); Console.WriteLine("Press any key to exit."); // 在调试模式下保持控制台打开
Console.ReadKey();
} private static int sumVars(int i, int j)
{
return i + j;
} private static int subtractVars(int i, int j)
{
return j - i;
}

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

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

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

Visual Studio 调试系列5 检查变量(使用自动窗口和局部变量窗口)的更多相关文章

  1. Visual Studio 调试系列6 监视变量(使用监视窗口和快速监视窗口)

    系列目录     [已更新最新开发文章,点击查看详细] 当你进行调试时,可以使用 监视窗口 和 快速监视窗口 来监视变量和表达式. 仅在调试会话期间,这两个窗口才可用. 监视窗口可以在调试时一次显示多 ...

  2. Visual Studio 调试系列7 查看变量占用的内存(使用内存窗口)

    系列目录     [已更新最新开发文章,点击查看详细] 在调试期间,“内存”窗口显示应用程序正在使用的内存空间. 调试器窗口(如监视窗口.自动窗口.局部变量窗口和快速监视对话框)显示变量,这些变量存储 ...

  3. Visual Studio 调试 ---- 系列文章

    调试是软件开发过程中非常重要的一个部分,它具挑战性,但是也有一定的方法和技巧. Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题. 该调试器可用于所有 Visual Stud ...

  4. Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序

    系列目录     [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...

  5. Visual Studio 调试系列2 基本调试方法

    系列目录     [已更新最新开发文章,点击查看详细] 在 Visual Studio 上下文中,当调试应用时,这通常意味着你在附加了调试器的情况下(即在调试器模式下)运行应用程序. 执行此操作时,调 ...

  6. Visual Studio 调试系列9 调试器提示和技巧

    系列目录     [已更新最新开发文章,点击查看详细] 01 固定数据提示 如果你在调试时,经常将鼠标悬停在数据提示上,就可能想固定变量的数据提示,方便自己随时查看. 即使在重新启动后,固定的变量也能 ...

  7. Visual Studio 调试系列10 附加到正在运行的进程

    系列目录     [已更新最新开发文章,点击查看详细] 可将 Visual Studio 调试器附加到本地或远程计算机上正在运行的进程. 进程运行后,在 Visual Studio 中选择“调试” & ...

  8. Visual Studio 调试系列4 单步后退来检查旧应用状态(使用使用 IntelliTrace 窗口)

    系列目录     [已更新最新开发文章,点击查看详细] IntelliTrace 后退会在每个断点处及调试器步骤事件发生时自动拍摄应用程序的快照. 凭借记录的快照便可以返回到上一个断点或步骤,并查看当 ...

  9. Visual Studio 调试系列1 Debug 与 Release 模式

    系列目录     [已更新最新开发文章,点击查看详细] Debug 模式 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序. 在Debug模式下调试,可以在断点处看到 ...

随机推荐

  1. 启明星MRBS会议室预约系统V30.0发布

    MRBS系统官方网址 https://www.dotnetcms.org/ 在线演示 http://demo.dotnetcms.org/mrbs 用户名admin,密码123456 Meeting ...

  2. IDA分析时添加新的C语言结构体

    View - Open Subviews - Local Type - INSERT键 - 输入新结构体 - 右击"Synchornize to idb" 之后再分析处按 T 就可 ...

  3. Winform中设置ZedGraph鼠标焦点位置画出十字线并在鼠标移出时十字线消失

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  4. 面试官都叫好的Synchronized底层实现,这工资开多少一个月?

    本文为死磕Synchronized底层实现第三篇文章,内容为重量级锁实现. 本系列文章将对HotSpot的synchronized锁实现进行全面分析,内容包括偏向锁.轻量级锁.重量级锁的加锁.解锁.锁 ...

  5. Django的路由系统:URL

    一. URLconf配置 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图,参数,别名), ] 参数说明 ...

  6. install和cp

    在Makefile里会用到install,其他地方会用cp命令 主要区别: 如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件.这是因为往正在 使 ...

  7. 队列解密QQ号

    队列解密QQ号 本篇博客主要是<啊哈!算法>的读书笔记,这里做一下记录. 问题场景: 给定一串 QQ 号,631758924,从其中解密出真实的 QQ 号. 解密规则:首先将第一个数删除, ...

  8. idea基本使用

    1.java项目导jar包 File->Project Structure->Modules->Dependencies->+ 2. 鼠标放在方法上一段时间后,显示该方法的注释 ...

  9. 获取List<object>中对象的属性值

    List<object> ls = new List<object>(); ls.Add(,name="sqm"}); ls.Add(,name=" ...

  10. promise 的基本用法

    //知识点1 例1--- 最基本的写法 Promise的基本语法哦 const Aa=new Promise(function(resolve,reject){ //resolve和reject是参数 ...