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如何给程序设 ...
随机推荐
- R语言- 实验报告 - 利用R语言脚本与Java相互调用
一. 实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调 ...
- [NewLife.XCode]实体工厂(拦截处理实体操作)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- ubuntu16.04安装QGIS工具
指令安装安装qgis可以通过添加安装源的形式进行 sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable sudo apt-get updat ...
- 第二十二节:Asp.Net Core中使用托管服务实现后台任务
1. 说明 BackgroundService 是用于实现长时间运行的 IHostedService 的基类,使用程序集:Microsoft.Extensions.Hosting. 2. 实现方式 继 ...
- jmeter实操及性能测试基础知识整理 - 不断更新
主要基于jmetet工具 有任何疑问直接留言,可以相互讨论 线程组菜单: 线程数:并发数量Rame-Up时间(秒):多久跑完线程数,比如线程是10,Rame-Up时间是10秒,就是10秒内跑完10个线 ...
- 百度地图API 基本用法
百度地图 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富.交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持H ...
- 「你学习,我买单」i春秋四周年精品课程福利专场
i春秋:中国专业的网络安全在线教育平台,累计用户超过60万. i春秋课程:资深专家团队教研支持,人才培养结合企业需求,针对不同岗位和技术方向的课程总计:600+门,1500+章,5700+节,时长74 ...
- 【推荐】全球最全面的Telegram组群频道的集合网站 持续收集中
全球最全面的Telegram组群频道的集合网站 https://www.telegramgroup.org Telegram 组群频道分享 可搜索自己想找的组群频道 从小白到大神,一个 telegra ...
- python通过连接池连接redis,操作redis队列
在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...
- CSS的四种基本选择器和四种高级选择器
做个快乐的搬运工:https://blog.csdn.net/DYD850804/article/details/80997251