windbg基本命令
1,
.reload
k 当前调用堆栈。
u 当前正在执行的代码。
2,
~ 查看被调试进程中的线程信息
每一行是一个线程的信息。第一行中,0 表示这个进程的编号;1ff4.1038 是 16 进制数
字,前者是当前进程的进程 ID,后者是线程 ID;后面的信息是线程状态和 Teb 地址。第二
行的线程编号前有一个点号“.”,表示这是当前线程,也就是刚才使用 u 和 k 命令查看到的
线程。
0:046>,冒号前的数字表示当前的进程号,同时调试多个进程
时,每个进程都会被指派一个进程号;冒号后的 000 表示线程号。
进行内核调试时,如果是单处理器系统,提示符是 kd>的形式;如果
是多处理器系统,则是 0: kd>的形式,前面的 0 表示处理器号。
3,
~threadIDs 切换到指定threadID线程。
4,
软断点
bp: 可以直接对某个代码地址设置断点。
0:000> bp TestModule!main
在TestModule内的main函数设置断点。同直接F9。
bl 查看已经存在的断点,bd禁用断点,de重启断点,bc删除断点。
0:000> bl
0 e 00401030 [C:\Users\NetRoc\Desktop\TestDebug1\T estDebug1.cpp @ 23]
1 e 0040105d [C:\Users\NetRoc\Desktop\TestDebug1\T estDebug1.cpp @ 27]
如上面命令输出中的第二行,1 表示断点 ID。当禁用、重新启或删除断点,或者其他命令来操作这个断点时,都需要用到这个 ID;
第二个“e”表示断点是启用的,如果是“d”则表示当前被禁用,如果带“u”则说明是后面将要介绍的未定断点;第三列的 0040105d 是该断点的地址;
后面的内容是断点所在的源文件和行号。
对于还没有加载到内存中的模块,比如在调用了 LoadLibrary 之后才加载的DLL。如果使用 bp 来对这个模块中的函数设置断点,会找不到符号,这时就会被调试器自动转变成用 bu 命令来设置的未定断点。
bu 可以对还不能识别的符号设置断点,当系统中有新模块加载进来时,调试器会对未定断点再次进行识别,如果找到了匹配的符号则会设置它。
对于bu的断点上面断点ID后面的e显示是eu,表示启用的未定断点。
5,
硬断点 ba:
ba 访问断点可以在某个内存地址处的数据被读取、写入或者执行的时候中断下来。
首先用.restart 命令重新启动调试目标。
对局部变量 x 有赋值操作 x *= 10 。
输入 ba w4 @@C++(&x)命令。“&i”表示变量 i 的地址,“w”表示写入操作,“4”表示只处理&x地址处 4 字节的写入操作。F5 运行,程序被成功中断下来 Breakpoint 1 hit。
WinDbg 的数据断点是通过 CPU 硬件断点实现的。而 DRx 寄存器所设置的内存访问断
点属于陷阱(Trap)而不是错误(Fault),CPU 对陷阱的处理是执行完该条指令后触发异常。因
此 WinDbg 只能在之后的一条指令处断下来。
Windows 调试工具支持两种语法的表达式:MASM 语法和 C++语法。如果没有特别指
明的话,默认是使用 MASM 表达式语法。一般来说,MASM 语法的表达式用来表示地址比
较方便,而 C++表达式用来表示结构或者类成员比较方便。可以通过@@C++(…)或者
@@masm(…)来包含表达式以明确指明所使用的语法。当使用 MASM 语法时,可以用双冒
号(::)或者双下划线(__)来表示类成员;但是使用 C++语法时则只能使用双冒号。
6,
d :查看内存
db :按byte查看内存
dd : 按DWORD查看内存
dv :查看当前作用域下局部变量的类型和值
? x : ?表达式求值命令常常用来查看符号所代表的值。 ? x 命令,它可以显示符号 x 对应的值,即局部变量 x的地址。
r :查看或者修改寄存器和伪寄存器
windbg基本命令的更多相关文章
- .Net Memory -- Windbg基本命令
命令 解释 .cls 清空命令窗口屏幕 .load dllfullpath 加载debugger扩展dll如SOS sosex psscor. .loadby dll moduleName 加载deb ...
- Windbg基本命令应用总结
.cordll -ve -u -l //reload core dlls ------加载下载系统文件符号的URL---------- .sympath SRV*C:\Symbols*http://m ...
- Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍
摘要 : 本章节介绍NetExt常用的命令. 并且对SOS进行一些对比. NetExt的帮助 要想玩好NetExt, 入门就得看帮助. 看NetExt的帮助可以调用!whelp 命令. 这样hi列举出 ...
- Windbg调试命令详解
作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd. ...
- Windbg使用简明指南
第一章 准备 1.1. 环境配置 _NT_DEBUGGER_EXTENSION_PATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 _NT_SY ...
- windbg调试.net程序
1. 解决线上.NET应用程序的如下问题: 崩溃 CPU高 程序异常 程序Hang死 2. 安装WinDbg: http://msdn.microsoft.com/en-us/windows/hard ...
- windbg命令分类与概述
WinDBG的大多数功能是以命令方式工作的, 本系列将介绍WinDBG的三类命令, 标准命令, 元命令和扩展命令. =============== 标准命令 =============== 标准命令用 ...
- Windbg简单介绍
1.1 使用帮助 Windbg中的命令分为三种:基本命令.元命令和扩展命令.基本命令和元命令都是调试器自带的,元命令以" ."开头. 扩展命令是外部加入的,以"!&quo ...
- windbg命令学习1
一.windbg 常用知识: 1. Windbg中的调试命令,分为三种:基本命令,元命令和扩展命令.基本命令和元命令是调试器自带的,元命令总是以“.”开头,而扩展命令是外部加入的,总是以感叹号“!”开 ...
随机推荐
- Windows 窗体的.Net 框架绘图技术
当编写一个典型的Windows 窗体程序时,窗体和控件的绘制.效果等操作是不需要特别加以考虑的.这是为什么呢?因为通过使用 .Net 框架,开发人员可以拖动一系列的控件到窗体上,并书写一些简单的与事件 ...
- 异常捕捉 ( try catch finally ) 你真的掌握了吗?
前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit ...
- delphi 修改Hint的字体和颜色
//修改Hint的字体和颜色 public { Public declarations } procedure Sshowhint(var hintstr:string;var can ...
- 简化版可用于多线程的logger
logger 嘛要高效,要简单.废话不多话. GitHub 地址 https://github.com/goldli/logger 本文所说的logger使用System.Logger做为NameSp ...
- SQL SERVER数据库状态(脱机,联机,可疑)及SQL设置语句详解
首先我们应该知道数据库总是处于一个特定的状态中,下面先来了解一下数据库的常见的三种状态:1,脱机:我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库 ...
- Mac电脑没有声音,苹果电脑没有声音怎么办
对于使用 Windows 系统电脑的小伙伴来说,可能有很多人会遇到电脑没有声音的问题.苹果 Mac 电脑也会出现没有声音的问题,不过相对较少.这里以我遇到的一个没有声音的问题为例,简单介绍处解决的 ...
- Linux(Debian) vps安装gnome桌面+VNC
昨天转载了一篇关于在Linux VPS上安装xface桌面并VNC连接的文章,因为文章是基于CentOS系统来操作的,有热心读者希望有一个Debian下的类似的东西,这就促成了今天的这篇文字.需要 ...
- RDS——mysql主从
测试一:RDS主 RDS从 只需要创建一个RDS数据库实例 1.版本 RDS:5.6.21 2.操作步骤 选中被操作的数据--->点击实例操作---->创建只读副本---& ...
- [转]Speeding Up Websites With YSlow
本文转自:http://net.tutsplus.com/tutorials/other/speeding-up-websites-with-yslow/ We all know there are ...
- CF Drazil and Date (奇偶剪枝)
Drazil and Date time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...