阅读:1530回复:5
请教:SoftIce调试的问题
各位大虾,小弟遇到了一个这样的问题:
我为一块PCI板卡编写了WDM驱动,安装正常,然后使用VC6.0编写了应用层程序。使用softIce进行调试,在DispatchCreate,DispatchIoControl这两个分发函数中设置了断点,运行应用层程序后,无论是CreatFile,还是DeviceIoControl,都能够被softIce捕捉到,当我开始单步调试时,奇怪的事情发生了: 我调试时打开的是一个Cpp文件(dispatch.cpp),当我按F10的时候,并不是按程序行的顺序一行一行的往下走,而是跳着走,甚至有可能跳出设置了断点的函数,跑到其它函数中去!以致我根本无法进行调试,请高手帮我解答一下这个问题:):):) [p:4] |
|
沙发#
发布于:2007-03-07 11:26
可能是符号文件没有更新,导致符号文件与Driver不匹配,每次Build都必须重新生成符号文件,并重新加载符号文件
|
|
|
板凳#
发布于:2007-03-07 14:26
楼上大虾所说的可能原因我也想到过,不知道我的做法是否正确,我是如下做的:
1、从SoftICE Symbol Loader中“Remove”我的驱动程序。 2、Ctrl+D调出SoftIce,取消所有断点。 3、修改驱动程序代码 4、重新编译连接驱动程序,生成新的SYS文件 5、再SoftICE Symbol Loader中打开新的Sys文件,然后Load,这时会自动生成.nms文件。 6、Ctrl+D调出SoftIce,File dispatch.cpp文件,设置断点,然后开始调试。 7、然后就出现了我所说的问题。 8、我甚至重新运行了.inf文件。 不知道再编译驱动程序.Sys文件时,是否需要特定的参数,我是用的\a。 期待大虾们的回复[p:4] |
|
地板#
发布于:2007-03-21 11:27
删除所有的生成的文件,全部重新编译试试
|
|
|
地下室#
发布于:2007-03-28 16:58
build -cZ
|
|
5楼#
发布于:2007-04-04 14:21
用table 命令看看 NMS文件和SYS文件是不是匹配
|
|