Windbg Watch(监视)窗口的使用
在WinDbg中,可以使用“监视”窗口显示和更改全局和局部变量和寄存器信息。 您可以自定义此窗口以显示您正在跟踪的项。。“监视”窗口可以显示所需的任何变量列表。这些变量可以包括来自任何函数的全局变量和局部变量。任何时候,“监视”窗口都会显示与当前函数范围匹配的变量值。也可以通过“监视”窗口更改这些变量的值。
如何打开监视窗口
- 通过菜单View--->Watch

- 快捷键Alt+2
- 通过工具栏

监视窗口
通过上面的方式打开的窗口如下:

监视窗口可以包含四列。Name列和Value列始终显示,Typecast列和Locations列是可选的。要显示“Typecast”和“Locations”列,请分别单击工具栏上的“类型转换”和“位置”按钮。

在监视窗口中,可以执行以下操作:
若要将变量添加到监视窗口中,选择第一个空单元格名称列中,键入变量名称,然后按 ENTER。 一个带有感叹号变量从单独的模块名称 (!)。 如果未指定模块,则使用当前的模块。 若要输入中的地址名称字段中,该地址必须以具有十进制数字 (如有必要,使用该前缀0x)。
如果您输入的变量名称当前函数的作用域中定义的其值将出现在值列。 如果未定义,值列将显示"错误:无法获取值"。
即使未定义变量,它可将其添加到监视窗口。 如果程序计数器输入在其中定义此名称的变量的函数,其值将出现在窗口中在该时间。
要从监视窗口中删除变量,请双击其名称,按 DELETE 键,然后按 ENTER。 通过双击旧名称,键入新名称,然后按 ENTER,也可以使用新名称替换旧名称。
如果变量是一种数据结构,其名称旁边显示复选框。 若要展开和折叠结构成员的显示,请选择或清除该复选框。
类型的整数int显示为十进制值; 类型的整数UINT显示在当前的基数。 若要更改当前的基数,请使用n (设置数量 Base)命令在调试器命令窗口中。
若要更改本地变量的值,请双击其值单元格。 输入新值,或编辑旧值。 (剪切、 复制和粘贴命令是可用来进行编辑。)您输入的值可以包含任何C++表达式。 输入新值或编辑旧值后,您可以按 enter 键来存储新值或按 esc 键放弃它。 如果提交无效的值后按 ENTER,,将重新出现的旧值。
类型的整数int显示为十进制值; 类型的整数UINT显示在当前的基数。 若要更改当前的基数,请使用n (设置数量 Base)命令在调试器命令窗口中。
类型列 (如果它显示在监视窗口中) 显示每个变量的当前数据类型。 每个变量显示在其自己的数据类型为正确的格式。 数据结构具有其类型名类型列。 其他变量的类型显示在此列中的"输入新的类型"。
如果您双击"输入新类型",您可以通过输入新的数据类型强制转换类型。 此强制转换更改仅在监视窗口中; 此变量的当前显示它不会更改任何内容在调试器中或在目标计算机上。 此外,如果输入中的新值值列中,你输入的文本将分析基于符号的实际类型而不是任何新型中输入类型列。 如果关闭并重新打开监视窗口,您将丢失的数据类型更改。
您还可以输入中的扩展命令类型列。 调试器会将该符号的地址传递到此扩展插件,并将在一系列的当前行下方的可折叠行中显示生成的输出。 例如,如果在此行中的符号是有效的线程环境块的地址,则可以输入 ! teb中类型列来运行! teb此符号的地址上的扩展。
位置列 (如果它显示在监视窗口中) 显示了一种数据结构的每个成员的偏移量。
除了变量之外,还可以监视监视窗口中的以下项:
- 注册。 当将寄存器添加到监视窗口中时,其名称加上前缀 at 符号 (@)。 与变量不同,不能更改寄存器值通过监视窗口。
- 包含函数的指针的 Vtable。 当 Vtable 出现在监视窗口中时,您可以浏览表中的函数条目。 如果在指向派生的实现,表示法的基类中包含 Vtable _vtcast_类显示来指示要添加的成员由于派生类中。 这些成员展开类似于派生的类类型。
- 扩展插件的返回值函数,如_EFN_GetPoolData。
与“局部”窗口不同,“监视”窗口不受寄存器上下文更改的影响。在监视窗口中,您只能查看和修改在当前程序计数器范围内定义的变量。如果打开新工作区,监视窗口内容将被丢弃并替换为新工作区中的内容。
Windbg Watch(监视)窗口的使用的更多相关文章
- Windbg Locals(局部变量)窗口的使用
在WinDbg中,可以通过输入命令.使用“局部变量”窗口或使用“监视”窗口查看局部变量.局部变量窗口显示当前作用域中的本地变量的所有信息. 如何打开Locals窗口 通过菜单View--->Lo ...
- VS中监视窗口,即时窗口和输出窗口的使用
一.监视窗口 1.配置应用程序,使应用程序处于调试状态. 2.点击“调试”----“窗口”----“监视”----“监视1”,打开监视窗口. 3.在监视窗口中“名称”栏中输入变量名称或html元素id ...
- 关于 VS2013监视窗口的内存面板及寄存器面板
1.插入断点,按F5调试,2.选择菜单项 debug-窗口-3.即可找到您要的监视窗口.
- VS调试 ---- 监视窗口、即时窗口、输出窗口
一.监视窗口1.配置应用程序,使应用程序处于调试状态.2.点击“调试”----“窗口”----“监视”----“监视1”,打开监视窗口.3.在监视窗口中“名称”栏中输入变量名称或html元素id,可查 ...
- Visual Studio 调试系列6 监视变量(使用监视窗口和快速监视窗口)
系列目录 [已更新最新开发文章,点击查看详细] 当你进行调试时,可以使用 监视窗口 和 快速监视窗口 来监视变量和表达式. 仅在调试会话期间,这两个窗口才可用. 监视窗口可以在调试时一次显示多 ...
- Windbg Memory(内存)窗口的使用
在 WinDbg 中,可以查看和编辑内存,通过输入命令或通过使用内存窗口. 内存窗口的打开 通过菜单View-->Memory 通过快捷键Alt+5 通过工具栏 使用内存窗口 通过上面方式打开的 ...
- Windbg Register(寄存器)窗口的使用
寄存器是位于在 CPU 的小易失性内存单位. 许多寄存器专用于特定用途,并可用于用户模式应用程序使用的其他寄存器. 基于 x86 和基于 x64 的处理器在有可用的寄存器的不同集合. 如何打开寄存器窗 ...
- WinDbg命令窗口的使用
调试器命令窗口是windbg中的主要调试信息窗口.可以在此窗口中输入调试程序命令并查看命令输出.Windbg的命令窗口是我们进行调试时,主要打交道的窗口.界面如下 对于windbg,“调试器命令窗口” ...
- 第二章排错的工具:调试器Windbg(上)
感谢博主 http://book.51cto.com/art/200711/59731.htm <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了排 ...
随机推荐
- maven setting 配置仓库,pom.xml中repository不起作用
问题描述 最近做java项目,需要使用公司自己搭建的maven仓库,但是有些包公司的仓库中没有,导致下载失败. 项目环境 jdk:1.8 maven:3.5 问题原因分析 maven的setting文 ...
- Java8 新特性 Stream 短路终端操作
短路终端操作 Java8 新特性 Stream 练习实例 传入一个谓词,返回传为boolean,如果符合条件,则直接结束流. 匹配所有 allMatch 任意匹配 anymMatch 不匹配 none ...
- Spring Boot 静态页面跳转
本篇博客仅为自己提个醒:如何跳转页面而不麻烦控制器. 当我们创建 Spring Boot 项目时(勾选了 Thymeleaf 和 Web),目录结构会是如下: 其中图二是我创建了一个 h ...
- Oracle的创建表空间及用户
学习笔记: 1.创建表空间 --创建表空间 create tablespace thepathofgrace datafile 'c:\thepathofgrace.dbf' size 100m au ...
- 初识redis(redis基础命令)
redis简介redis是一个开源(BSD许可)的使用C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,它可以用作数据库.缓存和消息中间件,并提供多种语言的API.从201 ...
- set容器与map容器的简单应用
set容器中一些函数,取自百度其他大佬已总结好的,如有侵权,请联系删除! set的各成员函数列表如下: c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器 c++ stl容 ...
- 等待唤醒机制---Day25
线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同. 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个 是生产,一个 ...
- JS基石之-----防抖节流函数
防抖和节流函数 阅读目录 一 .防抖函数 二 .节流函数 三 .个人理解两者的区别 一.防抖函数 1.1 概念: 触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算 ...
- javascript DOM中的节点层次和节点类型概述
针对JS高级程序设计这本书,主要是理解概念,大部分要点源自书内.写这个主要是当个笔记加总结 存在的问题请大家多多指正! 因为DOM这方面的对象方法操作性都特别强,但是逻辑很简单,所以就没有涉及到实际的 ...
- element表格的滚动条在合计上边
默认滚动条是在下边的,不好看,这里改一下 修改样式.完美解决: .el-table { overflow-x: auto; } .el-table__header-wrapper, .el-table ...