WinDbg入门教程(1)-调试器的基础知识

WinDbg 入门教程

介绍

在我的职业生涯中,我看到我们大多数都是使用Visual Studio来进行调试,而不是用其它许多免费的调试器。你可能有许多理由来使用这样的调试器,比如,在你家里的机器上没装开发环境,但是一个程序一次次的崩溃。其实根据堆栈的dump就可以判断出IE的崩溃是否是由于一个第三方的插件。

对于WinDbg,我目前为止还没有发现很好的快速入门的教程。这篇文章结合实例讨论了WinDbg的使用。我首先假设你熟悉调试的基本概念:stepping in, stepping out,断点以及远程调试的基本概念。

注意,这本来是座位一个入门的文档,你可以阅读并且开始使用WinDbg. 如果对于特定的命令有疑问,请查阅WinDbg的文档。你可以在任何微软提供的调试器中使用这篇文章中提到的命令,比如在VS的命令行窗口中。

这篇文章是基于WinDbg 6.3.

这仅仅是一系列关于调试技术的文章中的第一篇。在下一篇文章中,我会解释如何针对调试器编写扩展DLL.

调试器一览

下面大概介绍了你可以从微软网站上下载到的调试器:

·         KD-内核调试器。你可以用它来调试蓝屏一类的系统问题。如果是开发设备驱动程序是少不了它的。

·         CDB-命令行调试器。这是一个命令行程序

·         NTSD-NT调试器。这是一个用户模式调试器,可以用来调试用户模式应用程序。它实际上是一个CDBwindows UI增强。

·         WinDbg-用一个漂亮的UI包装了KDNTSDWinDbg即可以调试内核模式,也可以调试用户模式程序。

·         VS, VS.net-使用同KDNTSD相同的调试引擎,并且相比于同样用于调试目的的WinDbg,提供了功能更丰富的界面。

调试器之间的比较

功能

KD

NTSD

WinDbg

Visual Studio .NET

内核模式调试

Y

N

Y

N

用户模式调试

 

Y

Y

Y

非托管调试

Y

Y

Y

Y

托管调试

 

Y

Y

Y

远程调试

Y

Y

Y

Y

附加到进程

Y

Y

Y

Y

从进程分离

Y

Y

Y

Y

SQL调试

N

N

N

Y

WinDbg

WinDbg实际上包装了NTSDKD并且提供了一个更好用的用户界面。它也提供了命令行开关,比如最小化启动(-m),附加到一PID指定的进程(-p)以及自动打开崩溃文件(-z)。它支持三种类型的命令。

·         Regular commands(比如: k) 用来调试进程

·         Dot commands(比如:.sympath)用来控制调试器

·         Extension commands(比如: !handle)-这些命令属于可以用来添加到WinDbg的自定义命令;它们用扩展DLL的输出函数来实现。

PDB文件

PDB文件指的是链接器生成程序数据库文件(Program database files)。私有的PDB文件包括私有以及公有符号,源代码行号,类型,局部以及全局变量。公有的PDB文件不包含类型,局部变量以及源代码行号信息。

源地址

下一篇  WinDbg入门教程(2)-各种调试场景介绍 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值