windbg调试命令2(!gle、g、p)
!gle 扩展显示当前线程的最后一个错误码。
这个太好记了,getlasterror取首字母:
- LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
- LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
0:002> !gle
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
-all 显示目标系统中每个用户模式线程的最终错误。如果在用户模式下省略该参数,调试器显示当前线程的最终错误。如果内核模式下省略该参数,调试器显示当前的寄存器上下文指定的线程的最终错误。
- LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
- LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
- 0:002> !gle -all
- Last error for thread 0:
- LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
- LastStatusValue: (NTSTATUS) 0xc0000135 - {
- Last error for thread 1:
- LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
- LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
- Last error for thread 2:
- LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
- LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
0:002> !gle
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
0:002> !gle -all
Last error for thread 0:
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0xc0000135 - {Last error for thread 1:
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0Last error for thread 2:
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
!gle扩展显示GetLastError的值并尝试解码它。
g
g(go)命令开始指定进程或线程的执行。这种执行将会在程序结束、遇到BreakAddress 或者其他造成调试器停止的事件发生时停止。
这个我们太经常用到了,
1>.如果直接用g不带参数,表示无条件恢复调试目标的执行
2.>g Address,相当于设了一个一次性断点,然后将调试目标执行到断点
3>gu 用于使调试目标执行完当前函数并且返回到调用者,由于这个命令知道当前的栈指针,因此它可以从递归函数调用中返回
在用户态调试中,都可以通过~线程号 来指定某个线程的执行命令,所有其他线程都被冻结状态,
比如:
- System 0: 2 of 3 threads are frozen
0:002> ~0 g
System 0: 2 of 3 threads are frozen
windbg提示,3个线程中的两个被冻结了,只有0号线程是运行状态
p
p命令执行一条指令或者一行源码,并且选择性的显示所有寄存器和标志位的结果
这个比较好记,用过vs的都知道F10是单步调试(Step Over),这个的快捷键就是F10
不介绍了,最常用的,
转载于:https://www.cnblogs.com/guanlaiy/archive/2012/12/18/2822881.html
windbg调试命令2(!gle、g、p)相关推荐
- Windbg调试命令详解
Windbg调试命令详解 发表于2013 年 8 月 23 日 转载注明>> [作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Win ...
- 博客摘录「 Windbg调试命令汇总」2023年4月15日
目录 1.Windbg调试器介绍 2.Windbg版本说明 3.Windbg命令汇总 VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...) https://blog.csdn.net/c ...
- Windbg调试命令详解(3)
3 进程与线程 既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息.调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺. 3.1 进程命令 进程命令包括这些内容:显示进程 ...
- 搬运! Windbg调试命令详解
转载注明>> [作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是 ...
- WinDBG 调试命令大全
转载收藏于:http://www.cnblogs.com/kekec/archive/2012/12/02/2798020.html #调试命令窗口 ++++++++++++++++++++++++ ...
- windbg调试命令
#重要说明 (1) windbg命令分为标准命令,元命令和扩展命令. 标准命令提供最基本的调试功反能,不区分大小写.如:bp g dt dv k等 元命令提供标准命令没有提供的功能,也内建在调 ...
- windbg调试命令汇总
1:64位可以加载32为进行调试,!wow64exts.sw 切换到32位,再输一次切换到64位 2:x*! 查看哪些模块的符号文件已经被加载, F9:设置断点,只要在光标定位的位置(上图中灰色条)按 ...
- Windbg调试命令详解(2)
转载注明>> [作者:张佩][原文:http://blog.csdn.net/blog_index] 2. 符号与源码 符号与源码是调试过程中的重要因素,它们使得枯燥生硬的调试内容更容易地 ...
- WinDbg 调试命令记录二 (基础CLR查看)
查看CLR基础 !dumpdomain //dump domain信息 !dumpdomain <domain assress> //dump 某个 domain 的信息 !dumpa ...
最新文章
- C语言数组知识体系整理大学霸IT达人
- mxnet METRIC自定义评估验证函数
- java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...
- 【根据网上其他没有解决】XAMPP报错Error: Apache shutdown unexpectedly
- SQL基础--层次化查询(START BY ... CONNECT BY PRIOR)
- 【推荐系统】多视图多示例多标签的协同矩阵分解
- python转化成excel_python转换excel成py文件
- 加载一张图片到ImageView到底占据多少内存
- 探秘ReSharper 8新功能——XAML编辑
- ojdbc7加入本地maven仓库
- Python经典前端框架:Django,第一天【Django环境搭建】
- PHP微信公众号开发之自动回复
- 计算机设计贺卡教案,《运用Word制作电子贺卡》教学设计
- UTF-8编码转中文解码
- python 爬虫登录
- 代码Review工具upsourse的部署
- provider: SQL Network Interfaces , error: 26 - Error Locating Server / Instance
- props特性的深入了解
- 杭电研究生-算法设计与分析-期末宝典
- Tiled Map Editor(瓦片地图编辑器)的Java和QT版本区别
热门文章
- WPF-13:资源文件需要手动引用问题
- java 使用servlet做学生管理系统(无框架)
- js 检测input输入值是否全是汉字
- 无需激活直接同步登入discuz,php代码(直接可用)
- 【luogu2737】 [USACO4.1]麦香牛块Beef McNuggets [动态规划 完全背包][数学 扩展欧几里德]...
- phpstudy2018 安装xdebug扩展
- matlab从工作区读取一维数组和结构体
- SpringBoot应用的集成测试
- Intent Android 详解
- strip lstrip rstrip