阅读:1603回复:9
SOFTICE显示源代码问题
我调试一个驱动,
我生成的是Checked版本,然后我用Softice Loader将他加载进来 并选择了Package source with Symbol table。 然后Translate , Loader, 进入softice后,按了file *, 也能看到源程序文件, bpx Driverentry 然后net start mydrvier 也能断点在 DriverEntry处,并能以源码方式进行调试 但我断点在其他函数,却不能以源码方式调试了,为什么呢? 有没有大侠遇到过这样的问题?? 谢谢 |
|
最新喜欢:theseu... |
沙发#
发布于:2003-08-04 15:09
用F9
|
|
|
板凳#
发布于:2003-08-04 16:20
先按照楼上的兄弟说的try
如果不行的话,可能是你的driver有问题。很有可能是这样: net start MyDriver OS仅仅掉用了你的DriverEntry,紧接着就调用了Unload 因为你的driver没有跟具体的device连接,所以不会调用你的AddDevice。当然更不会调用Pnp Ioctrl等其他的routine了。 所以出现这种情况很正常。 |
|
地板#
发布于:2003-08-04 17:50
谢谢各位的回答。
我用了F9,虽然能断住,但是显示出来的却是汇编码。SRC还是没显示出源程序。 我在Unload的地方设置了断点, 发现在DriverEntry结束后并没有紧跟着调用 DriverUnload |
|
地下室#
发布于:2003-08-05 08:13
老哥,如果我没有猜错,你的符号文件没有和驱动对应起来。也就是说,你设的断点softice不知道是哪个驱动的。你可以照我说的式式。用任何二进制编辑器打开你要加载的符号文件,在离开时的不远处,你奎看到此符号文件对应的驱动,如果不是你的驱动,你手工把它改过去,在加载,就可以正常断点了。
|
|
5楼#
发布于:2003-08-05 17:25
我知道 soft-ice 4 在调试的时候,不能有其它模块与你的 driver 同名的,比如说你的 driver 名字为 myModule(.sys),然后又运行了另一个应用程序,名字是 myModule.exe 之类的,虽然一个是 .sys,另一个是 .exe,风马牛不相及,但 soft-ice 4 还是多半会出问题,一般便是找不到源文件之类的,或者设的断点无效之类的了。
这是我经过惨痛的教训之后得来的经验。 :D |
|
6楼#
发布于:2003-08-05 17:53
好象我有一个工程真的和这个一样的名称。。FT。。。。。
|
|
7楼#
发布于:2003-08-06 23:34
net start是用来启动服务的呀。
|
|
|
8楼#
发布于:2003-08-21 17:54
我的经历更奇怪:只有net start以后设的断点能起作用,之前设的都没用,我用bl看了一下,之前设的地址是行号,后设的是真正的地址,要是要调试DriverEntry就不知该怎样了
|
|
9楼#
发布于:2003-08-25 11:08
先 map32
再 symloc 重定位一下符号就 ok |
|