Stamp of Software Debugging
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
navigation bar seprate line
与内核调试引擎对话的KdTalker

内核调试引擎(Kernel Debug Engine,简称KD)是NT系列操作系统用于支持内核调试的软件模块,其主要代码与系统内核一起位于内核模块中。

内核调试器通过通信电缆与内核调试引擎进行通信以实现调试运行在内核模式中的代码。微软没有公开KD与调试器之间的通信协议和技术细节。但是理解这些内容对于学习内核调试和理解操作系统原理都是有意义的。《软件调试》一书的第18章详细的分析了内核调试的工作原理,并介绍了KD与调试器通信的详细过程和二者之间通信的通信协议。 

KdTalker工具是《软件调试》的作者在NT 3.51 DDK中的KRNLDBG示例程序的基础上编写的。用于观察、分析、和诊断内核调试的对话过程。

 

上图显示的是KdTalker的一个工作场景。右侧的列表框用来显示程序的工作状态和通信过程。左侧的按钮用来执行各种动作,依次为:

Start - 启动通信线程,打开通信端口,向其发送复位包,并监视端口等待KD的回复;

Breakin - 发送中断包,让目标系统的内核中断下来;

Clear - 清除右侧列表框的所有内容;

Copy Sel - 复制右侧列表框中选中的内容;

Copy All - 复制右侧列表中的所有信息;

Quit - 退出程序。

目前版本的KdTalker支持串行口通信方式,而且要求主机端使用的是COM1端口。

安装方法

KdTalker由一个单一的用户态应用程序KdTalker.exe组成。通过下面的链接下载压缩包后,将其中的文件解压缩到你喜欢的位置,然后执行KdTalker.exe就可以启动这个程序了。 

注意事项

因为KdTalker使用了 NT 3.51 DDK中的KRNLDBG示例程序的部分源程序文件。而作者没有找到合适的许可文件来包含这些源文件,所以在下面的源程序包中不包含这些文件。因此,如果您希望修改和重新编译,那么请先从NT 3.51 DDK的KRNLDBG示例中复制缺少的文件。目前的MSDN订阅下载中仍包含了NT 3.51 DDK。

内部实现

《软件调试》的第18章专门讨论了内核调试的工作原理和内核调试通信协议,并介绍了KdTalker工具。

使用许可

下载并使用这个工具的许可条件是使用者本人购买了《软件调试》一书。

下载

包含KdTalker.exe和KdTalker.pdb的压缩包(83KB)kdtk_bin.zip

包含应用程序源代码的源程序压缩包(29KB)kdtk_src.zip

navigation bar seprate line
Copyright (C) 2008-2013 Raymond Zhang, All Rights Reserved