欢迎来到天天文库
浏览记录
ID:12981815
大小:1.21 MB
页数:46页
时间:2018-07-20
《kernel_debugging_tutorial》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、使用WinDbg内核调试看雪学院,笨笨雄译安装程序基础挑选技术取得更多信息WINDOWS调试工具很强大,但是学习使用它们并不容易。特别对于驱动开发者使用的WinDbg和KD这两个内核调试器(CDB和NTSD是用户态调试器)。本教程的目标是给予一个已经有其他调试工具使用经验的开发者足够信息,使其能通过参考WINDOWS调试工具的帮助文件进行内核调试。本文将假定开发者熟悉一般WINDOWS操作系统和进程的建立过程。本文的重点是集成内核模式和用户态模式的图形化调试器WinDbg。KD在脚本和自动化调试中更有用,并且在资深程序员中拥有一定地位,但是本教程将集中讨论WinDbg,只会偶尔提到KD。本文讨
2、论的是WindowsNT4.0,Windows2000或以后的版本,而且目标电脑的处理器基于X86架构。对于64位平台,将不会特别提及。总之,本教程由简单介绍调试器的安装开始,大体分成2部分,基础知识和选择技术。基础知识包括基本调试命令和常用调试命令。选择技术是其他命令和在很多情况下都有用的调查方法。后者并不是调查象deadlocks,memorycorruption或者resourceleaks的唯一方法。第一次阅读本教程,你可能会跳过选择技术。你可以停止阅读本教程而转向微软调试器讨论组,也可以通过调试器的反馈e-mai解决更多的问题。安装程序取得最新版!取得最新版的调试器,并且有规律的更新
3、它。这里并没有夸大最新版的价值,因为调试器会经常改进和修复错误。你将能在下面网址下载:http://www.microsoft.com/whdc/devtools/debugging/default.mspx.主机与目标之间的连接调试器有使用null-modemcable或者1394cable连接两台电脑的安装方案。本教程不分析单操作系统的本地调试(即在调试器运行的电脑上进行分析)。3台电脑(目标电脑,调试服务器,调试客户端)的调试将会被简要的讨论。在主机调试软件(WinDbg或者KD)和目标操作系统之间,是一个协同处理的调试过程。每一部分都必须做些什么。更明确地,WinDbg不是作为一个“管
4、理操作系统”,象客户和一个真正操作系统那样运行目标。WinDbg是一个调试软件,象目标操作系统的合作伙伴那样知道它在调试过程中的角色。在这种关系中,WinDbg从目标接收信息,并且向目标发送信息。这是一种有效的通信机制。46KernelDebuggingTutorial©2005MicrosoftCorporationserialprotocol是调试器与目标系统之间可靠的通信机制。你能通过null-modemcable使用COM端口连接主机和目标机器。另一个可供选择的通信机制是1394。在调试工具的帮助文件中的“ConfiguringSoftwareontheTargetComputer.”
5、主题有关于它们的描述。你的第一次session假设你的主机使用WIN2K或以上的版本。主机的操作系统可以不同于目标电脑的操作系统。主机可以在你平常进行开发,维护或者故障诊断的地方。它应该与网络连接,如果你希望访问symbol和source服务器(请看symbols和source)。从命令提示窗口中,改变当前的目录到WINDOWS调试工具的安装目录。这是windbg.exe和kd.exe所在的位置。输入windbg,按下Enter。你将会看到:46KernelDebuggingTutorial©2005MicrosoftCorporation分屏在这里,你能重排你的窗口。下面的例子包括可移动的窗
6、口。打开组合窗口并移到屏幕上方,单击“Command”标题栏并拖动它的窗口离开主框架。然后收缩主框架,你可以使用键击代替直接使用菜单或者按钮。然后使用FileàKernelDebug以得到一个协议窗口,选择1394和channel1。到这里,你的桌面会象下图一样:46KernelDebuggingTutorial©2005MicrosoftCorporation在KernelDebugging窗口中,点OK。激活连接现在你已经准备好在主机和目标之间建立连接。在目标机器以其中一个调试入口启动WINDOWS。立即回到主机系统,用鼠标激活WinDbg的命令窗口,按下CTRL+BREAK。不久之后,你
7、会看到:现在不必担心关于symbols的信息。你已经将WinDbg连接到WIN2003。你现在很忙!你需要明白一件细小却至关重要的事:在命令窗口的底部显示“kd>”提示符。这代表WinDbg已经准别好接受命令。如果没有提示符显示,这时WinDbg将不能处理命令,尽管你输入的任何命令都将会被保存在缓冲区域并尽可能快的运行。你必须等待“kd>”出现,以确定WinDbg已经作好响应的准备。因为有时它正在
此文档下载收益归作者所有
点击更多查看相关文章~~