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基本命令的更多相关文章

  1. .Net Memory -- Windbg基本命令

    命令 解释 .cls 清空命令窗口屏幕 .load dllfullpath 加载debugger扩展dll如SOS sosex psscor. .loadby dll moduleName 加载deb ...

  2. Windbg基本命令应用总结

    .cordll -ve -u -l //reload core dlls ------加载下载系统文件符号的URL---------- .sympath SRV*C:\Symbols*http://m ...

  3. Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍

    摘要 : 本章节介绍NetExt常用的命令. 并且对SOS进行一些对比. NetExt的帮助 要想玩好NetExt, 入门就得看帮助. 看NetExt的帮助可以调用!whelp 命令. 这样hi列举出 ...

  4. Windbg调试命令详解

    作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd. ...

  5. Windbg使用简明指南

    第一章 准备 1.1.    环境配置 _NT_DEBUGGER_EXTENSION_PATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 _NT_SY ...

  6. windbg调试.net程序

    1. 解决线上.NET应用程序的如下问题: 崩溃 CPU高 程序异常 程序Hang死 2. 安装WinDbg: http://msdn.microsoft.com/en-us/windows/hard ...

  7. windbg命令分类与概述

    WinDBG的大多数功能是以命令方式工作的, 本系列将介绍WinDBG的三类命令, 标准命令, 元命令和扩展命令. =============== 标准命令 =============== 标准命令用 ...

  8. Windbg简单介绍

    1.1 使用帮助 Windbg中的命令分为三种:基本命令.元命令和扩展命令.基本命令和元命令都是调试器自带的,元命令以" ."开头. 扩展命令是外部加入的,以"!&quo ...

  9. windbg命令学习1

    一.windbg 常用知识: 1. Windbg中的调试命令,分为三种:基本命令,元命令和扩展命令.基本命令和元命令是调试器自带的,元命令总是以“.”开头,而扩展命令是外部加入的,总是以感叹号“!”开 ...

随机推荐

  1. 使用GLSL实现更多数量的局部光照 【转】

    原文 http://www.cnblogs.com/CGDeveloper/archive/2008/07/02/1233816.html 众所周知,OpenGL固定管线只提供了最多8盏灯光.如何使得 ...

  2. uri中为什么本地文件file后面跟三个斜杠, http等协议跟两个斜杠?

    那就要从URI[1]的结构来看了 scheme:[//[user:password@]host[:port]][/]path[?query][#fragment] 可以看到,如果有host的时候,前面 ...

  3. MySQL_前缀索引_建立

    -- 查看出现频率select count(*) as cnt,cityfrom sakila.city_demo group by city order by cnt desc limit 10; ...

  4. linux:ifconfig命令

    许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...

  5. Storm中的LocalState 代码解析

    官方的解释这个类为: /** * A simple, durable, atomic K/V database. *Very inefficient*, should only be * used f ...

  6. Android进阶笔记15:ListView篇之图片优化

    1.图片异步加载: (1)处理图片的方式: 如果ListView中自定义的Item中有涉及到大量图片的,一定要对图片进行细心的处理,因为图片占的内存是 ListView 项中最头疼的,处理图片的方法大 ...

  7. [Android]应用的前后台运行

    在开发中,你是不是没有抽象一个出常用的类,那你可能要为你的懒惰付出很大的代价.要时刻记得自己的工具箱,不断往里面添加一些小小玩意.今天就给大家带来一个很有意思的例子.前后台运行!! 在Android开 ...

  8. ganglia监控hadoop2.0配置方法

    ganglia监控hadoop2.0配置方法前提:hadoop2.0集群已安装ganglia监控工具第一步:Hadoop用户登录集群每一个节点,修改文件:vi /opt/hadoop-2.0.0-cd ...

  9. [转]关于ASP.NET(C#)程序中TEXTBOX下动态DIV跟随[AJAX应用]

    本文转自:http://blog.csdn.net/lolenboy/article/details/1665814 说明: 环境:ASPNET(c#),SQL2K 事例:TEXTBOX下跟随DIV, ...

  10. Python_sklearn机器学习库学习笔记(五)k-means(聚类)

    # K的选择:肘部法则 如果问题中没有指定 的值,可以通过肘部法则这一技术来估计聚类数量.肘部法则会把不同 值的成本函数值画出来.随着 值的增大,平均畸变程度会减小:每个类包含的样本数会减少,于是样本 ...