daoshi
驱动牛犊
驱动牛犊
  • 注册日期2001-10-12
  • 最后登录2005-08-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1328回复:3

SoftIce,为何截不住调用?

楼主#
更多 发布于:2002-06-13 21:10
我用Softice在2000下调试打印机驱动程序
该驱动是这样被调用的
先由DrvEnableDriver返回其他DDI函数的指针
而DrvEnableDriver这个函数只在第一次装载时调用

我想在其他DDI函数入口比如:DrvEnablePDEV处设断
但这个断点只在重起后第一次添加打印机时有效

一旦我重新安装打印机就无论如何截不住对任何DDI函数的
调用

如果在代码中加入DebugBreak
并设定I3here on
则被转入汇编代码

请多指教
daoshi
驱动牛犊
驱动牛犊
  • 注册日期2001-10-12
  • 最后登录2005-08-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-16 21:29
多谢斑竹
你说得对
走几步
果真就到了
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-14 10:43
加入int 3转入汇编代码不要紧,如果你正确地装入了调试符号文件,再往下执行一两下便转入了你的原代码。试试!( 加入了int 3本来就是汇编代码,不会显示你的DbgBreakPoint()代码。)
Tom_lyd
zhangyl
驱动牛犊
驱动牛犊
  • 注册日期2001-07-18
  • 最后登录2009-03-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-14 10:26
你没有加载调试符号文件,应该这样:

在WinIce.dat(2000下可能不同)里面,加入你要调试的符号文件名,如:
load=d:\\myproj\\testdrv.sym


签名是什么?
游客

返回顶部