richard-chen
驱动牛犊
驱动牛犊
  • 注册日期2002-05-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2360回复:20

怎样用softice调试程序?

楼主#
更多 发布于:2003-03-26 22:30
我执行DDK中的PORTIO中GPDREAD的程序,显示错误号998:
Invalid access to memory location.
用monitor检查发现执行了3次派遣例程,可能是在执行读操作时产生的错误,我应该用SOFTICE的什么命令进行跟踪?
是在SOFTICE中设置命令然后执行TEST程序,还是怎么做....不明白!
不知道哪位执行过这个程序,在执行GPDREAD.EXE是不是这样:
在DOS下进入目录gpdread -b 300,以字节方式,读300地址的内容。
我怀疑我执行GPDREAD的这个命令行有错误。望指教

最新喜欢:

aqua_aquaaqua_a...
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-27 12:15

http://www.driverdevelop.com/forum/html_36861.html?1048738491
早起早睡 精神百倍
uuchen
驱动牛犊
驱动牛犊
  • 注册日期2003-03-07
  • 最后登录2003-04-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-27 13:49
thanks!
恩人呀!我按照你的步骤但在load的时,出现错误:unable to find exports for this module.
能否详细说明!
是不是选择load exports...选项,然后我应该导入什么呢,是*.sys
吗?
在线等呆
richard-chen
驱动牛犊
驱动牛犊
  • 注册日期2002-05-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-27 14:20
是module里的load吧!
还有module里的setting是作什么的?
我用file命令是不用指定文件目录吗?为什么显示找不到该文件。
推荐个资料吧
richard-chen
驱动牛犊
驱动牛犊
  • 注册日期2002-05-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-27 15:40
已经产生*.nms文件,但是在softice中用file命令却说当前没有源文件。
我的操作步骤是:DDK下check build生成了*.sys文件
               打开symbol loader――>open *.sys――>load
                ――>translate均成功
               ctl+D唤出softice使用file文件
错在何处?
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-27 16:45
thanks!
恩人呀!我按照你的步骤但在load的时,出现错误:unable to find exports for this module.
能否详细说明!
是不是选择load exports...选项,然后我应该导入什么呢,是*.sys
吗?
在线等呆


不好意思,刚才忙工作去了,没有注意到你回了消息:)

我试了很多种可能,但就是没有出现你所说的情况,你能否把你的情况说清楚一点,symbol loader怎么设置的(尤其module的setting里)、你怎么用symebol loader加载你的驱动的

[编辑 -  3/27/03 by  mailme]
早起早睡 精神百倍
richard-chen
驱动牛犊
驱动牛犊
  • 注册日期2002-05-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-27 20:55
我只在general中设置了source file search和default source file是我要调试的文件的目录。
不知道还应该设置什么,怎么设置。
请教!
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-27 23:21
我只在general中设置了source file search和default source file是我要调试的文件的目录。
不知道还应该设置什么,怎么设置。
请教!


1、其实这两个选项都没有太大用途,你不用指定,驱动load时会自动问你的源程序文件在哪

2、module里的setting很重要,你还是看看我前面加的那个链接,里面说得比较详细。我写漏了一点,就是module里的setting里有4个checkbox,我不记得各个功能是什么了,反正选最下面一个
早起早睡 精神百倍
richard-chen
驱动牛犊
驱动牛犊
  • 注册日期2002-05-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-28 10:09
分别是general,debugging,translation,modules and files
你是说modules and files吗?
richard-chen
驱动牛犊
驱动牛犊
  • 注册日期2002-05-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-28 10:12
你给我的那个帖子并没有说关于setting 的事啊
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-28 14:35
不好意思,昨晚我回帖的机子上没装softice

1、选菜单module的settings

2、general里,只将prompt for missing source打勾,其余不管

3、debugging里,选load symbol information

4、Translation里,选symbols and source code和package source with symbol

5、modules and files不用管,是用来在系统启动时调试驱动用的

累啊,边打字还要边看symbol loader菜单,qq还不能拉下了,还得提防老板的偷袭--呵呵,双手互搏一心四用哈



[编辑 -  3/28/03 by  mailme]
早起早睡 精神百倍
richard-chen
驱动牛犊
驱动牛犊
  • 注册日期2002-05-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-03-28 17:46
mailme,非常非常感谢你,好人呀!我只能用分来表达我的谢意了。

我的设置和你的一模一样

我要调试的程序目录为c:\\ntddk\\src\\general\\portio\\sys\\objchk\\
i386\\genport.sys,这也是我open的路径。
第二步load,成功。
第三步translate,成功。
在c:\\ntddk\\src\\general\\portio\\sys\\objchk\\i386中生成genport.nms文件。
驱动程序的源文件在c:\\ntddk\\src\\general\\portio\\sys\\目录中,
测试文件在c:\\ntddk\\src\\general\\portio\\gpdread目录中
在SOFTICE中执行FILE命令,显示No Current Source File
执行file genport.c,光标到下一行,界面中显示出genport.c的源代码了。
这样是不是就对了:)
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-03-29 11:25
在SOFTICE中执行FILE命令,显示No Current Source File
执行file genport.c,光标到下一行,界面中显示出genport.c的源代码了。
这样是不是就对了:)

 


ft!!光用file命令当然不行了,呵呵,还以为你发贴时懒得敲*号啊:)
你可以用“file*”列出你的所有源文件,然后“file 文件名”就可以看代码了--其实不用敲完整的文件名,只要没有文件名前面部分相同的就可以了,比如,file gen

呵呵,看来还是我没说清楚啊
早起早睡 精神百倍
guard2002
驱动中牛
驱动中牛
  • 注册日期2002-05-21
  • 最后登录2017-03-07
  • 粉丝0
  • 关注0
  • 积分46分
  • 威望65点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2003-03-31 16:41
看帮助吧
那里面怎么调试都有
ABUABU
驱动小牛
驱动小牛
  • 注册日期2002-12-31
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-04-01 15:30

http://www.driverdevelop.com/forum/html_36861.html?1048738491


这个网页我无法打开,能不能给我这帖子的名字好查阿?谢谢:)
小鸟,扑腾~~扑腾~~扑腾~~
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-04-01 19:06
[quote]
http://www.driverdevelop.com/forum/html_36861.html?1048738491


这个网页我无法打开,能不能给我这帖子的名字好查阿?谢谢:) [/quote]

调试步骤:

1、将你的驱动用debug版本编译(就在vc的build菜单里的set active configuration里)

2、打开driverstudio的symbol loader,将选项里的package with sources选上。

3、用symbol loader的open file打开你的sys文件,然后load,会提示你指明驱动的源程序目录,用来进行源代码级调试

4、激活softice(Ctrl+D你总会吧,呵呵),用file*命令显示你的c或cpp文件,看看你的文件是否都在,然后“file 文件名”来打开你的文件,这时你可以看到你的源代码了

5、用F9加断点,然后g退出softice

6、运行你的exe调试程序,程序调用你的驱动时softice会弹出来,停在你的断点位置,然后你就细心调吧,呵呵

自认为写的很详细了,呵呵。大家都是武汉的新手,共同进步吧:)

我把帖子翻出来了,你慢慢看咯,名字是“怎么调试这个东西啊?”,就在abc版
早起早睡 精神百倍
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-04-01 19:07
[quote]
http://www.driverdevelop.com/forum/html_36861.html?1048738491


这个网页我无法打开,能不能给我这帖子的名字好查阿?谢谢:) [/quote]

调试步骤:

1、将你的驱动用debug版本编译(就在vc的build菜单里的set active configuration里)

2、打开driverstudio的symbol loader,将选项里的package with sources选上。

3、用symbol loader的open file打开你的sys文件,然后load,会提示你指明驱动的源程序目录,用来进行源代码级调试

4、激活softice(Ctrl+D你总会吧,呵呵),用file*命令显示你的c或cpp文件,看看你的文件是否都在,然后“file 文件名”来打开你的文件,这时你可以看到你的源代码了

5、用F9加断点,然后g退出softice

6、运行你的exe调试程序,程序调用你的驱动时softice会弹出来,停在你的断点位置,然后你就细心调吧,呵呵

自认为写的很详细了,呵呵。大家都是武汉的新手,共同进步吧:)

我把帖子翻出来了,贴在上面了,你慢慢看咯,名字是“怎么调试这个东西啊?”,就在abc版
早起早睡 精神百倍
ABUABU
驱动小牛
驱动小牛
  • 注册日期2002-12-31
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-04-04 09:33
谢谢了。但我还有2个疑问是:
1)“驱动用debug版本编译”是什么意思阿,
 我用的是2000DDK+VC的方法来写驱动,我会的是用DDK的“Checked Build Envitonment”或者是“Free Build Envitonment”来编译。那个在VC里的debug版本是什么东西阿,要怎样设置VC才能用这个功能?
2)“运行你的exe调试程序,程序调用你的驱动时softice会弹出来,停在你的断点位置”---这里调用的驱动是我用debug版本编译出来的文件吗?还有哦,那个exe文件是那里来的阿? 

请大虾不吝赐教,我会另外开贴放分的。*^-^*

[编辑 -  4/4/03 by  ABUABU]
小鸟,扑腾~~扑腾~~扑腾~~
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-04-04 13:21
1、严格来说,win32应用程序分debug、release编译,driver分为check、free编译。通俗点讲,debug=check,release=free。你的方式是对的,我这里说错了,调试时一般是check方式编译。呵呵sorry咯:)

2、这里调用的驱动就是你用check(debug)版本编译出来的,exe文件当然是你自己写的调试程序,用来和你的驱动打交道的
早起早睡 精神百倍
ABUABU
驱动小牛
驱动小牛
  • 注册日期2002-12-31
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-04-04 14:18
谢谢mailme。
但我还有一些问题,请mailme到《驱动调试步骤纠错-放70分》来一下。顺便给分。*^-^*

[编辑 -  4/4/03 by  ABUABU]
小鸟,扑腾~~扑腾~~扑腾~~
上一页
游客

返回顶部