WDK,DDK下调试

1、 下载网址为https://connect.microsoft.com/default.aspx
使用 msn 账号即可登录。然后注册connect


2、 安装时一定要注意,WDK所有目录名(含子目录)不能有空格。安装时,“设备虚拟框架”貌似和360有冲突(在我机器上是这样)。


3、 下载一个驱动安装工具,可以google上搜,srvinstw.exe文件,华军软件里就有。


4、 安装dbgprint,也去网上搜。使用时 菜单capture -> capture kernel选项一定要打开。


5、 安装windbg,微软网站上有。主机一定要装,至于虚拟机,看需要了,一般不用装,我后面所讲的windbg一定是主机上的。新版的wdk自带windbg。


6、 下载winobj,方便查看机器上有哪些驱动存在。


7、 为了方便调试一定要安装虚拟机,避免为了调试驱动,总是重装系统。当然虚拟机安装设置好后,也要备份。虚拟系统装好后,要为windows xp (虚拟机中)添加一个调试模式。就在C盘根目录的boot.ini文件里有以下这句话:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
在这句话下面再加一句:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200
boo.ini文件是只读且存档,要先去属性。


8、 虚拟机中增加一个串口,以提供调试。
在左边的commands栏中单击”Edit virtual machine settings”,出现Hardware,单击下面的”add”按钮,出现Add Hardware Wizard,单击“下一步”按钮。
Hardware types选择”Serial Port”(串口),单击“下一步”按钮。
选择”Output to named pipe”,单击“下一步”按钮。
这时有3个下拉列表框供选择,第1个保持默认,第2个选为”This end is the server.”,一般默认就是这个,第3个改为”The other end is an application.”。
在主机的桌面上建一个windbg的快捷方式,并且改启动参数:
Windbg.xe –b –k com:port=\\.\pipe\com_1,baud=115200,pipe,这样就可以与虚拟机中的xp调试端口互通了。
当虚拟机开机进入调试态XP时,你的主机马上运行windbg,虚拟机中的XP就会进入类似死机的状态。在windbg中输入命令g,虚拟机中的XP就会正常运行了。


9、 至于设置内核符号表,我也没搞明白到底起到什么作用,也没设得上去,不过还是说一下。
在调试连接上后,打开windbg的菜单File ->Symbol File Path,在这里输入符号表位置,符号表和sys产生在同一个目录下,所有只要指定本机上编译结果所在的objchk_wxp_x86\i386目录就可以了。另外需要指定windows内核符号表,让它自动从网上下载,在Symbol File Path中增加一项设置,用分号与其它隔开:
Srv*c:\symbols*http://msdl.microsoft.com/download/symbols
这个下载不一定成功,要多试几次,而且首次下载,windbg运行会很慢。


10、 编译方法
在开始菜单中找到WDK,然后选择Build Environments->windows xp,其中有两个选项,顾名思义,无非是两个版本,一个是调试版(Checked),一个是正式版(Free)。至于makefile文件和sources文件,在下个文章中叙述。


11、 在程序中下断点(程序要编译为Checked版)
#if DBG
_asm int 3
#endif
程序运行到这句,就会停止运行(如果虚拟机上的XP运行在调试状态下),这时候你可以在windbg中输入g命令,让其继续运行,并可在windbg中看到当前的机器指令。


12、对于部分C语言的运行库,许多是可以使用的,这个可以自已去尝试,有些虽然能用,但运行起来会出问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值