在调试期间,“内存”窗口显示应用程序正在使用的内存空间。

调试器窗口(如监视窗口、自动窗口、局部变量窗口和快速监视对话框)显示变量,这些变量存储在内存中的特定位置。“内存”窗口向您显示整体图片。内存视图便于检查在其他窗口中显示不好的大数据块(例如缓冲区或大字符串)。

内存窗口不限于显示数据。它显示内存空间中的所有内容,包括数据、代码和未分配内存中的随机垃圾位。

内存窗口不可用于脚本或SQL调试。这些语言不能识别内存概念。

01 打开内存窗口

要启用内存窗口,必须在“工具>选项”(或“调试>选项”)>调试>常规中选择“启用地址级调试”。

打开“内存”窗口

  1. 请确保启用地址级调试中选择工具 > 选项(或调试 > 选项) >调试 > 常规。

  2. 开始调试通过选择绿色箭头,按F5,或选择调试 > 开始调试。

  3. 下调试 > Windows > 内存,选择内存 1,内存 2,内存 3,或内存 4。 (某些版本的Visual Studio产品/服务只有一个内存窗口。)

02 在内存窗口中移动

计算机的地址空间很大,您可以通过滚动内存窗口轻松地丢失您的位置。

较高的内存地址显示在窗口的底部。要查看更高的地址,请向下滚动。要查看较低的地址,请向上滚动。

您可以使用拖放或在“ 地址”字段中输入地址,立即转到“ 内存”窗口中的指定地址。“ 地址”字段接受字母数字地址和计算地址的表达式,例如。e.User.NonroamableId

要强制立即重新评估“ 地址”字段中的表达式,请选择“ 自动重新评估自动”图标的圆角箭头。

默认情况下,“ 内存”窗口将“ 地址”表达式视为实时表达式,在应用程序运行时将其重新评估。例如,实时表达式可用于查看指针变量触及的内存。

要使用拖放移动到内存位置:

  1. 在任何调试器窗口中,选择内存地址或包含内存地址的指针变量。

  2. 将地址或指针拖放到“ 内存”窗口中。该地址随后出现在“ 地址”字段中,“ 内存”窗口将调整为在顶部显示该地址。

要在“地址”字段中输入内存位置,请移至内存位置:

  • 在“ 地址”字段中键入或粘贴地址或表达式,然后按Enter键,或从“ 地址”字段的下拉列表中选择它。“ 内存”窗口调整为在顶部显示该地址。

按下回车键,如下图:

但是个人看不懂里面具体的内容。

03 自定义内存窗口

默认情况下,内存内容以十六进制格式显示为1字节整数,窗口宽度决定显示的列数。您可以自定义“ 内存”窗口显示内存内容的方式。

要更改内存内容的格式:

  • 在“ 内存”窗口中单击鼠标右键,然后从上下文菜单中选择所需的格式。

要更改“内存”窗口中的列数:

  • 选择“ 列”字段旁边的下拉箭头,然后选择要显示的列数,或者根据窗口宽度选择“ 自动”进行自动调整。也可以手动输入数字。

如果您不希望在应用程序运行时更改“ 内存”窗口的内容,则可以关闭实时表达式评估。

要切换实时评估:

  • 在“ 内存”窗口中单击鼠标右键,然后在上下文菜单中选择“ 自动重新评估”。

您可以隐藏或显示“ 内存”窗口顶部的工具栏。隐藏工具栏时,您将无法访问“ 地址”字段或其他工具。

要切换工具栏显示:

  • 在“ 内存”窗口中单击鼠标右键,然后在上下文菜单中选择“ 显示工具栏 ”。工具栏显示或消失,具体取决于其先前的状态。

04 跟踪内存中的指针

在本机代码应用程序中,您可以将注册名称用作实时表达式。例如,您可以使用堆栈指针跟随堆栈。

要通过内存跟踪指针:

  1. 在“ 内存窗口地址”字段中,输入当前范围内的指针表达式。根据语言的不同,您可能需要取消引用它。

  2. 按Enter键。

    使用诸如Step之类的调试命令时,“ 地址”字段和“ 内存”窗口顶部显示的内存地址会随着指针的更改而自动更改。

Visual Studio 调试系列7 查看变量占用的内存(使用内存窗口)的更多相关文章

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

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

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

    系列目录     [已更新最新开发文章,点击查看详细] 在调试时,“自动变量”和“局部变量”窗口会显示变量值. 仅在调试会话期间,这两个窗口才可用. “自动变量”窗口显示当前断点周围使用的变量. “局 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. JVM的监控工具之jvisual

    VisualVM(All-in-One Java Trouble shootingTool)是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序,并且可以预见在未来一段时间内都是官方主力发展的 ...

  2. 安装win10和ubuntu双系统

    2019-06-22 ​ 最近找了一份新的工作,要用到linux,由于之前基本上没有接触过这方面的东西,所以今天捣鼓一下,安装win10和linux双系统,办公研发双不误. 如果在安装的过程中遇到什么 ...

  3. SQL Server 跨服务器、跨版本使用复制 (2008、2012)

    在两台不同的服务器间实现SQL Server 的发布和订阅,需要一些设置. 测试环境:2008数据库.2012数据库,可实现跨版本发布订阅 本次测试是08的数据库做发布端 ,使用08数据及12数据库均 ...

  4. Java生鲜电商平台-源码地址公布与思考和建议

    Java生鲜电商平台-源码地址公布与思考和建议 说明:今天是承诺给大家的最后一天,我公布了github地址(QQ群里面有).诚然这个是我的计划中的事情,但是有以下几点思考请大家共勉: 1. 你下了那么 ...

  5. 8个有意思的JavaScript面试题

    摘要: 神奇的JS系列. 作者:前端小智 原文:8个问题看你是否真的懂 JS Fundebug经授权转载,版权归原作者所有. JavaScript 是一种有趣的语言,我们都喜欢它,因为它的性质.浏览器 ...

  6. 还学不会webpack?看这篇!

    摘要: webpack入门教程. 原文:还学不会webpack?看这篇! 作者:MudOnTire Fundebug经授权转载,版权归原作者所有. Webpack已经流行好久了,但很多同学使用webp ...

  7. Innodb整体架构

    如下图展示了Innodb内存中和磁盘的结构: 内存中结构主要有如下几种: buffer pool change buffer adaptive hash index (自适应的hash索引) Log ...

  8. ThinkPHP删除目录及目录下文件的函数【转】

    1.删除目录及目录下所有的文件 2.删除目录下的所有文件但目录结构保留 3.删除指定文件 贴代码 /** +---------------------------------------------- ...

  9. SQL注入:Cookie注入

    什么是Cookie Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,就表示你可以无需密码直接登陆管理员账号. Cookie注入的原理 在动态 ...

  10. bert,albert的快速训练和预测

    随着预训练模型越来越成熟,预训练模型也会更多的在业务中使用,本文提供了bert和albert的快速训练和部署,实际上目前的预训练模型在用起来时都大致相同. 基于不久前发布的中文数据集chineseGL ...