阅读:2168回复:9
为什么SOFTICE无法断下虚拟打印机驱动程序??
为什么SOFTICE无法断下虚拟打印机驱动程序??
虚拟打印机驱动是从本论坛terrificskyfox所提供的W2kPrintDrvSample,已经安装并可正常运行打印,其驱动程序是两个DLL文件一个GPD文件,没有SYS文件。所以在SOFTICE中只能打开DLL文件。 我的本意只是想练习一下驱动程序的调试。 1. 启动Symoble Loader程序,File / Open Module打开UNI.dll 2. Module / Load 生成并加载符号表,中间由于无法定位到crtdllc文件,所以跳过了它 此时在Symbol Loader中出现了如下信息 ========================= C:\WINNT\system32\spool\drivers\w32x86\3\UNI.DLL opened successfully Translating C:\WINNT\system32\spool\drivers\w32x86\3\UNI.DLL . . . Translation of C:\WINNT\system32\spool\drivers\w32x86\3\UNI.DLL successfully completed Loading symbols for C:\WINNT\system32\spool\drivers\w32x86\3\UNI.DLL . . Symbols for C:\WINNT\system32\spool\drivers\w32x86\3\UNI.DLL successfully loaded 3. 启动SOFTICE,CTrl_D唤醒其界面。 4. 键入table命令,可以看到UNI [NM3]等字样。确定已经加载了符号表。 5. 键入file * ,可以看到相关源文件,键入file enable.cpp打开其中的enable.cpp文件, 6. 按F6切换光标到源码窗口中,找到OEMStartDoc函数,按下F9,设置断点。 7. 按Ctrl_D,隐藏SOFTICE窗口, 8. 运行调用了此驱动的调试程序,<BR>但是Softice并没有在断点处弹出,这是为什么?</BR>我看了很多的帖子也没有找到为什么?请高手帮忙。 W2kPrintDrvSample可以在下面的链接中获得: http://www.driverdevelop.com/forum/viewthread.php?tid=58415 我的平台是W2K server + 2K DDK + SoftICE 4.05 [编辑 - 2/18/05 by aqua_aqua] [编辑 - 2/18/05 by aqua_aqua] |
|
|
沙发#
发布于:2005-02-18 16:51
肯定是没有执行这个函数的了,就是说调用失败,否则一定会弹出的,应该是这样的吧~
|
|
|
板凳#
发布于:2005-02-18 16:56
肯定是没有执行这个函数的了,就是说调用失败,否则一定会弹出的,应该是这样的吧~ 通过SOFTICE 的窗口,可以看到(程序中有OutputDebugStringA),这个函数已经被执行了。 并且驱动程序一直可下执行很正常,没有任何错误出现。 [编辑 - 2/18/05 by aqua_aqua] |
|
|
地板#
发布于:2005-02-19 10:11
也许是符号表与可执行程序不匹配,可以用在相同位置的内存断点试试,如直接下bpx 8:xxxxxxxx
|
|
|
地下室#
发布于:2005-02-19 10:58
我测试了下,完全没问题,SOFTICE可以正常弹出的.
|
|
|
5楼#
发布于:2005-02-19 13:00
是没有问题的,你已经用SoftICE4.05了?我的还是3.1呢
|
|
|
6楼#
发布于:2005-02-19 13:48
请问wowocock和snaoStart两位高手,那我前面所列出的操作步骤是否正确????
|
|
|
7楼#
发布于:2005-02-19 21:48
请问wowocock和snaoStart两位高手,那我前面所列出的操作步骤是否正确???? 没问题,我就是按你的步骤做的..... |
|
|
8楼#
发布于:2005-02-20 11:49
记得应该是没有问题的,当时我跟踪过
试一下set breakinsharedmods on |
|
9楼#
发布于:2005-02-21 10:48
谢谢各位高手的帮助!!!!!!!
我在2k server下安装DS3.2后就可以断下来了,不知道为什么??唉,先这么着吧, [编辑 - 2/21/05 by aqua_aqua] |
|
|