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

若要打开“自动变量”窗口,请在调试时依次选择“调试” > “窗口” > “自动变量”,或按 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. 微软开放了.NET 4.5.1的源代码【转】

    .NET Reference Source发布了beta版,可以在线浏览.NET Framework 4.5.1的源代码,并且可以通过配置,在Visual Studio 2013中调试.NET Fra ...

  2. Elastic Stack核心产品介绍-Elasticsearch、Logstash和Kibana

    Elastic Stack 是一系列开源产品的合集,包括 Elasticsearch.Kibana.Logstash 以及 Beats 等等,能够安全可靠地获取任何来源.任何格式的数据,并且能够实时地 ...

  3. opencv代码片段合集

    个人笔记 长期更新 #### 创建一个图片 import cv2 # Not actually necessary if you just want to create an image. impor ...

  4. 基于Spark的电影推荐系统(推荐系统~4)

    第四部分-推荐系统-模型训练 本模块基于第3节 数据加工得到的训练集和测试集数据 做模型训练,最后得到一系列的模型,进而做 预测. 训练多个模型,取其中最好,即取RMSE(均方根误差)值最小的模型 说 ...

  5. ADFS登录界面自定义

    最近在做identityServer3+ADFS 实现域账号第三方授权验证,发现一个问题,在我们网站跳转到域账户登录页面,这个页面有点不美观,那么我们改如何自定义这个登录界面呢? ADFS安装配置这里 ...

  6. 在React中使用react-router-dom路由

    1,路由组件的基本实现 使用React构建的单页面应用,要想实现页面间的跳转,首先想到的就是使用路由.在React中,常用的有两个包可以实现这个需求,那就是react-router和react-rou ...

  7. 【设计模式】Singleton

    前言 Singleton设计模式,确保全局只存在一个该类的实例.将构造器声明为private,防止调用(虽然还是可以使用反射来调用).声明一个静态的类实例在类中,声明一个公共的获取实例的方法.这篇博文 ...

  8. E203 译码模块(2)

    常用的alu算术运算指令(包括ecall和 ebreak)在regular alu单元处理.regular alu单元为alu单元的一个子单元.regular单元的信息总线共21位,格式如下图所示,其 ...

  9. 【IPHONE开发-OBJECTC入门学习】复制对象,深浅复制

    转自:http://blog.csdn.net/java886o/article/details/9046273 #import <Foundation/Foundation.h> int ...

  10. 基于Morphia实现MongoDB按小时、按天聚合操作

    MongoDB按照天数或小时聚合 需求 最近接到需求,需要对用户账户下的设备状态,分别按照天以及小时进行聚合,以此为基础绘制设备状态趋势图. 实现思路是启动定时任务,对各用户的设备状态数据分别按照小时 ...