驱动编写与调试(6)

(5) 然后跟着我做:首先运行windbg,然后打开虚拟机客户机,选中调试模式

 

 

(6)进入要调试的系统后我们可以在windbg中用Debug命令中的Break对目标机进行中断,用F5我们又可以恢复客户机的运行。

 

我们设置windbg的Symbol path:我的设置如下
C:/MyCodesSymbols;SRV*C:/MyLocalSymbols*http://msdl.microsoft.com/download/symbols;C:/MyLocalSymbols
这里我把自己的.pdb文件放到C:/MyCodesSymbols下,从微软的符号文件服务器上下载符号文件到C:/MyLocalSymbols中。

现在我们来调试一个驱动试试,吧刚才写的驱动和应用文件拷贝到虚拟客户机中,在windbg中打开驱动源文件如下:

 

我们先下一个延迟断点:bu hook!DriverEntry 跟普通断点相比,推迟断点的特色是把对modules!names的操作延迟到模块加载时进行地址解析,而普通断点是对地址进行操作,或直接把modules!names转换为地址。推迟断点的另一个特性是系统重启之后还能记住它们(不是记住的已经转换的地址)。这个特性使得推迟断点在模块被卸载之后仍然被会记得,而普通断点就不行了,当模块被卸载之后断点同时会被移除。

延迟断点可以很方便的使我们的应用程序在特定的位置下断。

如果我们要下一个普通断点可以使用bp命令或者直接在源代码 要下断的地方按f9, 当你想查看已经设置的断点时,可以使用bl(“Breakpoint Line”)命令.下好断点后我们就可以按f5进行调试了,具体方法和其他调试器差不多我也就不多罗嗦了。关于windbg命令的详细描述可以参看帮助文档。

这篇文章我就写到这里,有机会的话,我会给大家更详细的介绍windbg调试器的用法.谢谢大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值