silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2696回复:22

怎么用TurboDebugger或AFD调试DOS下的驱动程序?(20分)

楼主#
更多 发布于:2002-10-10 11:12
有人建议我用TurboDebugger或AFD(Advanced Full-screen Debugger)调试dos下的驱动程序,但是,好像TurboDebugger只能调试exe文件,怎样用它来调试驱动程序呢,哪儿有这些帮助吗?至于AFD,我根本就不知道怎么用它把我的驱动程序调入,更不用说设断点了,我找到的AFD就一个可执行文件,下面根本没有帮助,谁能指导指导啊。(20分以答谢)
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-10 12:02
一定要写驱动?直接写个TSR不就行了,还简单。
DOS下不时髦驱动,一般用TSR代替之。
如果你非要调,用SoftIce for DOS
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-10 13:58
softice2.8我实在不敢恭维,我已经摸索了好长时间,才决定放弃softice for dos:和emm386.exe冲突,没有emm386.exe我的网络又不能加载,没法调(我的是网卡驱动程序)。此外还不能用\'boot\',老是出现\'Divide overflow\'或死在softice中出不来。我的目标是要做一个像rtl8139那样的dos下的网卡驱动程序,一来可以和网络协议接口,二来可以做pxe无盘网络。可是这个dos下的网卡驱动简直要了我的命,已经四个月了,我还没调出来,我快崩溃了,调试工具不好用(不像windows下的又多又好),还没有这方面的例子源代码(指dos下的网卡驱动程序)。
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-10 14:26
softice2.8我实在不敢恭维,我已经摸索了好长时间,才决定放弃softice for dos:和emm386.exe冲突,没有emm386.exe我的网络又不能加载,没法调(我的是网卡驱动程序)。此外还不能用\'boot\',老是出现\'Divide overflow\'或死在softice中出不来。我的目标是要做一个像rtl8139那样的dos下的网卡驱动程序,一来可以和网络协议接口,二来可以做pxe无盘网络。可是这个dos下的网卡驱动简直要了我的命,已经四个月了,我还没调出来,我快崩溃了,调试工具不好用(不像windows下的又多又好),还没有这方面的例子源代码(指dos下的网卡驱动程序)。

还是写TSR吧,容易些
来,给我20分
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-11 15:41
问题是我的驱动早就写好了,就是不知道怎么调试。写TSR可以和ndis2接口吗?能和protman等这些东东交互吗(我是外行,提出的问题可能会让你喷饭)?哎,还是先给你20分吧(恋恋不舍的,无可奈何花落去啊)。。。。。。
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-11 16:56
问题是我的驱动早就写好了,就是不知道怎么调试。写TSR可以和ndis2接口吗?能和protman等这些东东交互吗(我是外行,提出的问题可能会让你喷饭)?哎,还是先给你20分吧(恋恋不舍的,无可奈何花落去啊)。。。。。。

你是外行,我也不是内行
注意,DOS不是Windows,它下面驱动的概念很淡,而且即使是.sys驱动,也是挂接中断,和TSR一样。你把你的.sys改成TSR,应该是很容易的。DOS下的驱动,其实就是在中断里干一些事。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
ldljlzw
驱动中牛
驱动中牛
  • 注册日期2002-03-16
  • 最后登录2014-01-02
  • 粉丝1
  • 关注0
  • 积分1021分
  • 威望372点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-19 10:24
DOS下的码动虽然没WINDOWS的明了,但它也它的概念,和TSR是有点不同的,因为在DOS下写也它的规范,当然可以说,能写成DOS的东西也可以用TSR来实现,但不是一种简单替代,因为它在概念和格式上是二回事,在DOS下码动根本没有和TSR有什么驻留、勾持中断等东西,这一切工作是由DOS本身来帮你完成,你根本就不必知道。总之它们的写法是完全不同的!!!!!!!
ldljlzw
驱动中牛
驱动中牛
  • 注册日期2002-03-16
  • 最后登录2014-01-02
  • 粉丝1
  • 关注0
  • 积分1021分
  • 威望372点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-19 10:33
softice2.8我实在不敢恭维,我已经摸索了好长时间,才决定放弃softice for dos:和emm386.exe冲突,没有emm386.exe我的网络又不能加载,没法调(我的是网卡驱动程序)。此外还不能用\'boot\',老是出现\'Divide overflow\'或死在softice中出不来。我的目标是要做一个像rtl8139那样的dos下的网卡驱动程序,一来可以和网络协议接口,二来可以做pxe无盘网络。可是这个dos下的网卡驱动简直要了我的命,已经四个月了,我还没调出来,我快崩溃了,调试工具不好用(不像windows下的又多又好),还没有这方面的例子源代码(指dos下的网卡驱动程序)。


silan兄,我还是建议用SOFTICE2.8,是真的,它的功能很强大的,你还不知道吗?它除了是一个很好的调试器,更是个一个DOS下的好内存管理器,你根不用加载EMM386.EXE,用SOFTICE2.8就可以管理RAM内存!!!

要不你把你的东西拿来我给你调试吧,在这行我不行的!!!

[编辑 -  10/19/02 by  ldljlzw]
ldljlzw
驱动中牛
驱动中牛
  • 注册日期2002-03-16
  • 最后登录2014-01-02
  • 粉丝1
  • 关注0
  • 积分1021分
  • 威望372点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-22 13:37
silan兄来了只回复,好吗?
gz818
驱动小牛
驱动小牛
  • 注册日期2002-02-26
  • 最后登录2008-11-15
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-10-24 13:14
我有DOS下网卡的源程序例子,回去找找,想必可以有所帮助!
如果是国外的下不来的东东,可以告诉我,帮帮也可以,不要太大了!
silan
驱动小牛
驱动小牛
  • 注册日期2002-02-04
  • 最后登录2004-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-08 09:52
兄弟你有ndis2网卡驱动例子代码吗?那太好了, 我真急需这个,雪中送炭!!!遇到救星了!!!发到我的信箱号码:zhangba@cmmail.com,可以吗?谢谢喽!
/***************************/ 认认真真学好三个代表,踏踏实实做好无产阶级接班人。 /***************************/
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-08 09:58
DOS下的码动虽然没WINDOWS的明了,但它也它的概念,和TSR是有点不同的,因为在DOS下写也它的规范,当然可以说,能写成DOS的东西也可以用TSR来实现,但不是一种简单替代,因为它在概念和格式上是二回事,在DOS下码动根本没有和TSR有什么驻留、勾持中断等东西,这一切工作是由DOS本身来帮你完成,你根本就不必知道。总之它们的写法是完全不同的!!!!!!!

\"这一切工作是由DOS本身来帮你完成,你根本就不必知道\",如果我知道了,还自己做了,也一样效果吧,结果不就是TSR?
DOS帮做什么了?
鼠标驱动是驱动吧,但DOS下一般的鼠标驱动都是.exe的,很少有.sys的。
二进制格式当然不一样,但最后落点不都一样?
其实我对DOS驱动根本不了解,因为我知道TSR可以干一切事情就足够了。
干嘛那么多感叹号?????????????????????
 :mad: :mad: :mad: :mad: :mad: :mad:
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-08 11:21
[quote]DOS下的码动虽然没WINDOWS的明了,但它也它的概念,和TSR是有点不同的,因为在DOS下写也它的规范,当然可以说,能写成DOS的东西也可以用TSR来实现,但不是一种简单替代,因为它在概念和格式上是二回事,在DOS下码动根本没有和TSR有什么驻留、勾持中断等东西,这一切工作是由DOS本身来帮你完成,你根本就不必知道。总之它们的写法是完全不同的!!!!!!!

\"这一切工作是由DOS本身来帮你完成,你根本就不必知道\",如果我知道了,还自己做了,也一样效果吧,结果不就是TSR?
DOS帮做什么了?
鼠标驱动是驱动吧,但DOS下一般的鼠标驱动都是.exe的,很少有.sys的。
二进制格式当然不一样,但最后落点不都一样?
其实我对DOS驱动根本不了解,因为我知道TSR可以干一切事情就足够了。
干嘛那么多感叹号?????????????????????
 :mad: :mad: :mad: :mad: :mad: :mad: [/quote]
silan:花猫说得有点偏颇。
DOS下的TSR和DOS驱动不可同日而语,不能完全等价。
TSR可视为DOS内核的扩充,使DOS具备了简单的多任务功能。它通过挂接特定中断的方式驻留在内存(一般是常规内存),当特定的中断被调用时,它就被激活。
而DOS驱动程序当然也是DOS内核的一部分,DOS驱动程序有特定的结构,分为三部分:具体分布我现在不记得了,只记得第一部分为设备头,第三部分为设备体,即驱动程序的实际工作代码。DOS自身会维护一个设备链表,你自己写的驱动程序只要加载成功,DOS就会在内核为你的驱动生成一个节点(而TSR没有这个概念);另一个区别在于内存的存储位置:DOS具备了把所有的驱动程序放在高端内存的功能,而TSR需要程序编制者自己写,这样会很复杂;用户写的驱动一般在Config.sys里加载,命令格式如下:
lh c:\\driver\\abc.sys
lh的意思就是说让DOS把驱动放在高端,不占用常规内存。

Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-08 12:44
silan:花猫说得有点偏颇。
DOS下的TSR和DOS驱动不可同日而语,不能完全等价。
TSR可视为DOS内核的扩充,使DOS具备了简单的多任务功能。它通过挂接特定中断的方式驻留在内存(一般是常规内存),当特定的中断被调用时,它就被激活。
而DOS驱动程序当然也是DOS内核的一部分,DOS驱动程序有特定的结构,分为三部分:具体分布我现在不记得了,只记得第一部分为设备头,第三部分为设备体,即驱动程序的实际工作代码。DOS自身会维护一个设备链表,你自己写的驱动程序只要加载成功,DOS就会在内核为你的驱动生成一个节点(而TSR没有这个概念);另一个区别在于内存的存储位置:DOS具备了把所有的驱动程序放在高端内存的功能,而TSR需要程序编制者自己写,这样会很复杂;用户写的驱动一般在Config.sys里加载,命令格式如下:
lh c:\\driver\\abc.sys
lh的意思就是说让DOS把驱动放在高端,不占用常规内存。

 

1,有什么东西驱动能做TSR不能做的?有多少“驱动”是.sys的?鼠标驱动是什么格式的?
2,TSR一样可以简单地放到高端,具体做法我忘记了,但确实可以!
3,什么叫完全等价?难道文件格式一样才叫等价?
4,不知道你们看过多少DOS下的“驱动”,就是那种用来管理硬件的,有多少是.sys的???
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-11-08 13:30
猫兄似乎有点生气,我想没有必要,我只不过是把我的观点摆出来,有什么不正确的大家可以指正,呵呵;)
驱动程序并不一定是以.sys结尾的文件,DOS下也存在多种扩展文件名的驱动,有的以.drv的形式存在,有的以.exe存在,也有的以.sys存在,还有的以.com存在。
我不知道你所说的驱动程序放到高端是指哪个位置,是640K的高端吗?还是HMA?还是UMB?还是扩展内存区?
我所说的完全等价,是指功能上和程序本身结构特点上。TSR在某些功能上甚至强于驱动。驱动依赖于操作系统的调度,TSR可以不依赖于操作系统,而直接依赖于BIOS调用激活。但是DOS储备设备链表管理当前系统中的所有软件、硬件设备,如果某一设备没有在设备链表中登记,那么你写了一个TSR程序在那里也不会工作。
Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-11-08 13:40
猫兄似乎有点生气,我想没有必要,我只不过是把我的观点摆出来,有什么不正确的大家可以指正,呵呵;)
驱动程序并不一定是以.sys结尾的文件,DOS下也存在多种扩展文件名的驱动,有的以.drv的形式存在,有的以.exe存在,也有的以.sys存在,还有的以.com存在。
我不知道你所说的驱动程序放到高端是指哪个位置,是640K的高端吗?还是HMA?还是UMB?还是扩展内存区?
我所说的完全等价,是指功能上和程序本身结构特点上。TSR在某些功能上甚至强于驱动。驱动依赖于操作系统的调度,TSR可以不依赖于操作系统,而直接依赖于BIOS调用激活。但是DOS储备设备链表管理当前系统中的所有软件、硬件设备,如果某一设备没有在设备链表中登记,那么你写了一个TSR程序在那里也不会工作。
 

具体那种高端,怎么调入,我真的忘记了,我最早玩电脑时主要玩得DOS,很久不玩了。
为何要DOS调度呢?TSR完全可以。
你说的.exe,.com的驱动,其实就是TSR
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-11-08 13:41
驱动一定要由系统载入,用load或lh
你说那些.exe,.com,在命令行可以直接执行。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-11-08 14:09
:)
Tom_lyd
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-11-08 14:30
:)

???
我说的不对吗?
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-11-08 14:40
你说得很对,.exe、.com都可以直接在命令行下执行。
Tom_lyd
上一页
游客

返回顶部