阅读:1231回复:4
请胡老大,gjp等各位老大进来看看
我现在调试passthru用的softice,每次程序出错总是要先到安全模式下把passthru.sys替换成原来没有错误的版本,然后重新启动机器对程序进行修改。完了之后再次把新版本passthru.sys拷到drivers目录下,再重启机器,对其进行调试。这样反复的重启机器不仅浪费时间对机器也有不好的影响。请问调试驱动程序有没有更好的办法?给个提示或是思路吧,再这样折腾下去机器又要重装了。拜托一定给点建议。
|
|
|
沙发#
发布于:2003-10-16 19:11
一般来说双系统比进安全模式好。
系统A出问题,进系统B,修改,编译COPY到DRIVER下。 重起。 比进安全模式快多了 |
|
|
板凳#
发布于:2003-10-17 09:12
这个办法不错,不错,比进安全模式是要快点.
不过hust_wu哥们的做法比较奇怪,修改程序为什么就不能在安全模式下?非要再回到正常模式修改?这么搞下去别人重起2两次你就得重起4次. |
|
|
地板#
发布于:2003-10-18 09:05
谢谢两位的提示,为了表示诚意马上给分,不过要少点,每人五分。,还要再次向SharpShooter表示感谢,谢谢你上次能在百忙之中抽出时间回复邮件。按照你上次在邮件中说的,我加了一个DriverEntry,程序是编译成功了,在注册表中加了你说的一些选项,重启之后用net start 启动那项服务说服务已经启动,但程序中的一些Debug信息看不到,而且在softice中也抓不到我自己加的函数的断点。估计是没有成功启动。
无奈之下只好用passthru了。我现在可抓到所有的包。问题又来了,我需要知道本机的MAC地址,在论坛中搜了一把,知道了个大概。主要是用NdisRequest,我没有分配内存,而是用了一个局部变量来保存MAC地址,根据返回的信息,NdisRequest返回的状态并不是NDIS_STATUS_SUCCESS,而且运行一个不确定的时间后会出现页面错误,用softice显示引起错误的一句是 PtRequestComplete函数中的*pAdapt->BytesNeeded = NdisRequest->DATA.QUERY_INFORMATION.BytesNeeded;一句。只有自己慢慢再看是为什么出错了。 最恼人的是,我的SOFTICE设置成boot的启动方式后会抓到下面的错误(并不是我的驱动造成的):unhandled kernel mode exception Break due to keBugCheckEx。设置成Manual方式启动一切正常,几位老大能不能支支招? |
|
|
地下室#
发布于:2003-10-18 09:57
在ptrequestcomplete里拦截你的REQUEST,可以得到你要的MAC
|
|
|