Windbg Locals(局部变量)窗口的使用
在WinDbg中,可以通过输入命令、使用“局部变量”窗口或使用“监视”窗口查看局部变量。局部变量窗口显示当前作用域中的本地变量的所有信息。
如何打开Locals窗口
- 通过菜单View--->Locals

- 通过快捷键Al+3
- 通过工具栏

局部变量窗口
通过上面的方式打开的窗口如下:


在局部变量窗口中,可以执行以下操作:
名称列显示每个本地变量的名称。 如果变量是一种数据结构,其名称旁边显示复选框。 若要展开或折叠结构成员的显示,请选择或清除该复选框。
值列显示每个变量的当前值。
- 若要为变量输入新值,双击当前值并键入新值,或编辑旧值。 (剪切、 复制和粘贴命令是可用来进行编辑。)您可以键入任何C++表达式。
- 若要保存新值,请按 ENTER。
- 若要放弃的新值,请按 ESC。
- 如果键入无效的值,按 ENTER 键时,将重新出现的旧值。
类型的整数int显示为十进制值; 类型的整数UINT显示在当前的基数。 若要更改当前的基数,请使用 n (设置数量 Base) 命令在调试器命令窗口中。
类型列 (如果它显示在局部变量窗口中) 显示每个变量的当前数据类型。 每个变量显示在其自己的数据类型为正确的格式。 数据结构具有其类型名类型列。 其他变量的类型显示在此列中的"输入新的类型"。
如果您双击"输入新类型",您可以通过输入新的数据类型强制转换类型。 此强制转换更改仅在局部变量窗口中; 此变量的当前显示它不会更改任何内容在调试器中或在目标计算机上。 此外,如果输入中的新值值列中,你输入的文本将分析基于符号的实际类型而不是任何新型中输入类型列。 如果关闭并重新打开局部变量窗口,您将丢失的数据类型更改。
您还可以输入中的扩展命令类型列。 调试器会将该符号的地址传递到此扩展插件,并将在一系列的当前行下方的可折叠行中显示生成的输出。 例如,如果在此行中的符号是有效的线程环境块的地址,则可以输入 ! teb中类型列来运行 ! teb 此符号的地址上的扩展。
位置列 (如果它显示在局部变量窗口中) 显示了一种数据结构的每个成员的偏移量。
如果本地变量是一个包含 Vtable,类的实例名称列显示 Vtable,并且可以扩展 Vtable 以显示函数指针。 如果在指向派生的实现,表示法的基类中包含 Vtable _vtcast_类显示来指示添加,则由于派生类的成员。 这些成员展开类似于派生的类类型。
局部变量窗口有一个包含两个按钮的工具栏 (Typecast并位置) 以及一个具有其他命令的快捷菜单。 若要访问菜单,请右键单击该窗口的标题栏或单击窗口右上角附近的图标 (
)。 工具栏和菜单包含以下按钮和命令:


(工具栏和菜单)Typecast将显示类型列打开和关闭。
(工具栏和菜单)位置将显示位置列打开和关闭。
(仅限菜单)显示 16 位值作为 Unicode此窗口中显示的 Unicode 字符串。 此命令将打开和关闭全局设置,它会影响局部变量窗口、 监视窗口和调试器命令输出。 此命令相当于使用 .enable_unicode (启用 Unicode 显示器) 命令。
(仅限菜单)始终显示在默认数字基数导致要在显示中而不是以十进制格式显示它们的默认基数的整数。 此命令将打开和关闭全局设置,它会影响局部变量窗口、 监视窗口和调试器命令输出。 此命令相当于使用 .force_基数_输出 (使用基数范围内的整数) 命令。
请注意 始终显示在默认数字基数命令不会影响长整数。 除非以十进制格式显示长整数 .enable_长_状态 (启用长整数的显示) 命令集。 .Enable_长_状态命令会影响显示在局部变量窗口中,监视窗口和调试器命令输出中; 没有为此命令在局部变量窗口中的菜单中没有等效项。
(仅限菜单)选定的值为打开内存窗口将打开新的停靠的内存窗口,显示所选表达式的地址处开始的内存。
(仅限菜单)调用所选的内存值的 dt运行 dt (显示类型) 命令与所选符号作为其参数。 调试器命令窗口中显示结果。 -N选项自动用于将符号与十六进制地址区分开来。 未不使用任何其他选项。 请注意,使用此菜单选项生成的内容是与运行时生成的内容相同dt命令从命令行中,但格式会略有不同。
(仅限菜单)工具栏工具栏,开启和关闭。
(仅限菜单)停靠或取消停靠将使窗口进入或离开停靠的状态。
(仅限菜单)移到新停靠局部变量窗口将关闭,并将其打开新的平台中。
(仅限菜单)设置为选项卡形式停靠为窗口中,键入目标局部变量窗口不可用。 此选项才可用的源或内存窗口。
(仅限菜单)始终浮点将使窗口停靠,即使仍拖到停靠位置。
(仅限菜单)移动与帧将使窗口移动时移动的 WinDbg 帧,即使在窗口已解除固定。
(仅限菜单)帮助有关 Windows 调试工具文档中打开此主题。
(仅限菜单)关闭关闭此窗口。
其他说明
本地上下文确定哪些组的本地变量将显示在局部变量窗口。 当本地上下文的任何原因发生更改时,会自动更新局部变量窗口。 默认情况下,本地上下文与匹配程序计数器的当前位置。 也就是说当我们如果执行~0s切换线程或.cxr切换上下文等指令时,如果此时窗口打开,那么窗口内容将会改变。
Windbg Locals(局部变量)窗口的使用的更多相关文章
- Visual Studio 调试系列5 检查变量(使用自动窗口和局部变量窗口)
系列目录 [已更新最新开发文章,点击查看详细] 在调试时,“自动变量”和“局部变量”窗口会显示变量值. 仅在调试会话期间,这两个窗口才可用. “自动变量”窗口显示当前断点周围使用的变量. “局 ...
- Windbg Watch(监视)窗口的使用
在WinDbg中,可以使用“监视”窗口显示和更改全局和局部变量和寄存器信息. 您可以自定义此窗口以显示您正在跟踪的项..“监视”窗口可以显示所需的任何变量列表.这些变量可以包括来自任何函数的全局变量和 ...
- python中的作用域以及内置函数globals()-全局变量、locals()-局部变量
在python中,函数会创建一个自己的作用域,也称为为命名空间.这意味着在函数内部访问某个变量时,函数会优先在自己的命名空间中寻找. 通过内置函数globals()返回的是python解释器能知道的变 ...
- Windbg Memory(内存)窗口的使用
在 WinDbg 中,可以查看和编辑内存,通过输入命令或通过使用内存窗口. 内存窗口的打开 通过菜单View-->Memory 通过快捷键Alt+5 通过工具栏 使用内存窗口 通过上面方式打开的 ...
- Windbg Register(寄存器)窗口的使用
寄存器是位于在 CPU 的小易失性内存单位. 许多寄存器专用于特定用途,并可用于用户模式应用程序使用的其他寄存器. 基于 x86 和基于 x64 的处理器在有可用的寄存器的不同集合. 如何打开寄存器窗 ...
- python的作用域、globals()-全局变量 和 locals()-局部变量
在python中,函数会创建一个自己的作用域,也称为为命名空间.当我们在函数内部访问某个变量时,函数会优先在自己的命名空间中寻找. 我们自己定义的全局变量均在python内建的globals()函数中 ...
- WinDbg命令窗口的使用
调试器命令窗口是windbg中的主要调试信息窗口.可以在此窗口中输入调试程序命令并查看命令输出.Windbg的命令窗口是我们进行调试时,主要打交道的窗口.界面如下 对于windbg,“调试器命令窗口” ...
- 认识WinDbg
WinDbg学习笔记(一)--认识WinDbg 一.前言 本人学习WinDbg已经有好几天了,虽说技术掌握的还不太熟练,不过也总算是入门了在学习WinDbg的过程中,觉得WinDbg真的比Oll ...
- Windows调试神器:WinDBG
Q:WinDBG的Watch窗口中我想要查看长字符串,但是后面的内容都被省略为...了怎么办? A:如图,双击你要查看的内容,出现光标后,移动光标即可查看后面被省略的内容 Q:WinDBG如何给程序设 ...
随机推荐
- Codeforces Round #597 (Div. 2) C. Constanze's Machine dp
C. Constanze's Machine Constanze is the smartest girl in her village but she has bad eyesight. One d ...
- vue使用--环境搭建与基本项目创建说明
桃之夭夭,思绪纷飞. 一.环境搭建 1.安装node.js(包含包管理工具npm) 安装包可以到node官网进行下载,穿梭>>> 根据自己的操作系统下载相应版本的安装包,运行后按照操 ...
- 【shell脚本】定时备份日志===logBackup.sh
定时备份日志 设置执行权限 [root@VM_0_10_centos shellScript]# chmod a+x logBackup,sh 脚本内容 [root@VM_0_10_centos sh ...
- Java8新特性——StreamAPI 的使用
StreamAPI的说明 Java8中有两大最为重要的改变.第一个是 Lambda 表达式:另外一个则是 Stream API. Stream API ( java.util.stream) 把真正的 ...
- SATA接口、PCI/PCIe、NVMe的介绍
SATA接口.PCI/PCIe.NVMe的介绍 SATA接口 SATA是Serial ATA的缩写,即串行ATA. SATA已经完全取代旧式PATA(Parallel ATA或旧称IDE)接口的旧式硬 ...
- 三维网格细分算法(Catmull-Clark subdivision & Loop subdivision)附源码(转载)
转载: https://www.cnblogs.com/shushen/p/5251070.html 下图描述了细分的基本思想,每次细分都是在每条边上插入一个新的顶点,可以看到随着细分次数的增加,折 ...
- webapi 导入excel处理数据
参考资料 https://blog.csdn.net/pan_junbiao/article/details/82935992 https://www.cnblogs.com/dansedia ...
- Linux文件查找与打包
一.文件查找 locate与find是经常使用的Linux 命令,刚接触Linux时对这两个命令的使用傻傻的分不清.现在我们来对比一下两个命令到底有哪些区别. 1.1 locate locate让使用 ...
- 安卓微信对接H5微信支付出现“商家参数有误,请联系商家解决”的问题处理
最近遇到客户在对接我们微信支付的时候,一些商家反馈在用户支付的过程中会出现报错,出错的截图如下: 查看微信官方文档如下:https://pay.weixin.qq.com/wiki/doc/api/H ...
- SVG撑满页面
当viewBox属性固定,默认修改svg标签的宽高,svg都会按比例缩放 我们现在不想按比例缩放,需要svg撑满整个画面 这里只需为svg标签添加一个关键属性:preserveAspectRatio ...