阅读:2360回复:20
怎样用softice调试程序?
我执行DDK中的PORTIO中GPDREAD的程序,显示错误号998:
Invalid access to memory location. 用monitor检查发现执行了3次派遣例程,可能是在执行读操作时产生的错误,我应该用SOFTICE的什么命令进行跟踪? 是在SOFTICE中设置命令然后执行TEST程序,还是怎么做....不明白! 不知道哪位执行过这个程序,在执行GPDREAD.EXE是不是这样: 在DOS下进入目录gpdread -b 300,以字节方式,读300地址的内容。 我怀疑我执行GPDREAD的这个命令行有错误。望指教 |
|
最新喜欢:aqua_a... |
沙发#
发布于:2003-03-27 12:15
http://www.driverdevelop.com/forum/html_36861.html?1048738491 |
|
|
板凳#
发布于:2003-03-27 13:49
thanks!
恩人呀!我按照你的步骤但在load的时,出现错误:unable to find exports for this module. 能否详细说明! 是不是选择load exports...选项,然后我应该导入什么呢,是*.sys 吗? 在线等呆 |
|
地板#
发布于:2003-03-27 14:20
是module里的load吧!
还有module里的setting是作什么的? 我用file命令是不用指定文件目录吗?为什么显示找不到该文件。 推荐个资料吧 |
|
地下室#
发布于:2003-03-27 15:40
已经产生*.nms文件,但是在softice中用file命令却说当前没有源文件。
我的操作步骤是:DDK下check build生成了*.sys文件 打开symbol loader――>open *.sys――>load ――>translate均成功 ctl+D唤出softice使用file文件 错在何处? |
|
5楼#
发布于:2003-03-27 16:45
thanks! 不好意思,刚才忙工作去了,没有注意到你回了消息:) 我试了很多种可能,但就是没有出现你所说的情况,你能否把你的情况说清楚一点,symbol loader怎么设置的(尤其module的setting里)、你怎么用symebol loader加载你的驱动的 [编辑 - 3/27/03 by mailme] |
|
|
6楼#
发布于:2003-03-27 20:55
我只在general中设置了source file search和default source file是我要调试的文件的目录。
不知道还应该设置什么,怎么设置。 请教! |
|
7楼#
发布于:2003-03-27 23:21
我只在general中设置了source file search和default source file是我要调试的文件的目录。 1、其实这两个选项都没有太大用途,你不用指定,驱动load时会自动问你的源程序文件在哪 2、module里的setting很重要,你还是看看我前面加的那个链接,里面说得比较详细。我写漏了一点,就是module里的setting里有4个checkbox,我不记得各个功能是什么了,反正选最下面一个 |
|
|
8楼#
发布于:2003-03-28 10:09
分别是general,debugging,translation,modules and files
你是说modules and files吗? |
|
9楼#
发布于:2003-03-28 10:12
你给我的那个帖子并没有说关于setting 的事啊
|
|
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] |
|
|
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的源代码了。 这样是不是就对了:) |
|
12楼#
发布于:2003-03-29 11:25
在SOFTICE中执行FILE命令,显示No Current Source File ft!!光用file命令当然不行了,呵呵,还以为你发贴时懒得敲*号啊:) 你可以用“file*”列出你的所有源文件,然后“file 文件名”就可以看代码了--其实不用敲完整的文件名,只要没有文件名前面部分相同的就可以了,比如,file gen 呵呵,看来还是我没说清楚啊 |
|
|
13楼#
发布于:2003-03-31 16:41
看帮助吧
那里面怎么调试都有 |
|
14楼#
发布于:2003-04-01 15:30
这个网页我无法打开,能不能给我这帖子的名字好查阿?谢谢:) |
|
|
15楼#
发布于:2003-04-01 19:06
[quote] 这个网页我无法打开,能不能给我这帖子的名字好查阿?谢谢:) [/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版 |
|
|
16楼#
发布于:2003-04-01 19:07
[quote] 这个网页我无法打开,能不能给我这帖子的名字好查阿?谢谢:) [/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版 |
|
|
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] |
|
|
18楼#
发布于:2003-04-04 13:21
1、严格来说,win32应用程序分debug、release编译,driver分为check、free编译。通俗点讲,debug=check,release=free。你的方式是对的,我这里说错了,调试时一般是check方式编译。呵呵sorry咯:)
2、这里调用的驱动就是你用check(debug)版本编译出来的,exe文件当然是你自己写的调试程序,用来和你的驱动打交道的 |
|
|
19楼#
发布于:2003-04-04 14:18
谢谢mailme。
但我还有一些问题,请mailme到《驱动调试步骤纠错-放70分》来一下。顺便给分。*^-^* [编辑 - 4/4/03 by ABUABU] |
|
|
上一页
下一页