gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1603回复:9

SOFTICE显示源代码问题

楼主#
更多 发布于:2003-08-04 11:42
我调试一个驱动,
我生成的是Checked版本,然后我用Softice Loader将他加载进来
并选择了Package source with Symbol table。

然后Translate , Loader,

进入softice后,按了file *,
也能看到源程序文件,

bpx Driverentry

然后net start mydrvier
也能断点在 DriverEntry处,并能以源码方式进行调试

但我断点在其他函数,却不能以源码方式调试了,为什么呢?

有没有大侠遇到过这样的问题??

谢谢

最新喜欢:

theseustheseu...
danielxu22
驱动中牛
驱动中牛
  • 注册日期2002-11-22
  • 最后登录2014-03-24
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-04 15:09
用F9
今天我发现我家的金鱼淹死了,:(
acidfish
驱动小牛
驱动小牛
  • 注册日期2002-05-20
  • 最后登录2009-11-11
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-04 16:20
先按照楼上的兄弟说的try
如果不行的话,可能是你的driver有问题。很有可能是这样:
net start MyDriver
OS仅仅掉用了你的DriverEntry,紧接着就调用了Unload
因为你的driver没有跟具体的device连接,所以不会调用你的AddDevice。当然更不会调用Pnp Ioctrl等其他的routine了。
所以出现这种情况很正常。
gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-04 17:50
谢谢各位的回答。

我用了F9,虽然能断住,但是显示出来的却是汇编码。SRC还是没显示出源程序。

我在Unload的地方设置了断点,
发现在DriverEntry结束后并没有紧跟着调用 DriverUnload
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-05 08:13
老哥,如果我没有猜错,你的符号文件没有和驱动对应起来。也就是说,你设的断点softice不知道是哪个驱动的。你可以照我说的式式。用任何二进制编辑器打开你要加载的符号文件,在离开时的不远处,你奎看到此符号文件对应的驱动,如果不是你的驱动,你手工把它改过去,在加载,就可以正常断点了。
liuyang714
驱动牛犊
驱动牛犊
  • 注册日期2003-06-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-05 17:25
我知道 soft-ice 4 在调试的时候,不能有其它模块与你的 driver 同名的,比如说你的 driver 名字为 myModule(.sys),然后又运行了另一个应用程序,名字是 myModule.exe 之类的,虽然一个是 .sys,另一个是 .exe,风马牛不相及,但 soft-ice 4 还是多半会出问题,一般便是找不到源文件之类的,或者设的断点无效之类的了。

这是我经过惨痛的教训之后得来的经验。 :D
gx_kyw
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-05 17:53
好象我有一个工程真的和这个一样的名称。。FT。。。。。

hcn
hcn
驱动牛犊
驱动牛犊
  • 注册日期2001-06-09
  • 最后登录2004-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-06 23:34
net start是用来启动服务的呀。
hcn
louwy
驱动牛犊
驱动牛犊
  • 注册日期2003-03-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-08-21 17:54
我的经历更奇怪:只有net start以后设的断点能起作用,之前设的都没用,我用bl看了一下,之前设的地址是行号,后设的是真正的地址,要是要调试DriverEntry就不知该怎样了
holly_lee
驱动牛犊
驱动牛犊
  • 注册日期2003-08-16
  • 最后登录2004-12-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-08-25 11:08
先 map32
再 symloc

重定位一下符号就 ok
游客

返回顶部