Agri
驱动牛犊
驱动牛犊
  • 注册日期2002-02-26
  • 最后登录2002-11-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1790回复:10

softice 一问

楼主#
更多 发布于:2002-04-06 16:39
我正在用softice调试wdm驱动,请问用什么命令向softice中的变量观察窗口添加新的变量?先谢了
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-06 16:56
watch varible
Tom_lyd
Agri
驱动牛犊
驱动牛犊
  • 注册日期2002-02-26
  • 最后登录2002-11-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-06 17:15
谢谢!但不知为什么有的变量用你的方法可以,有的提示 “INVALID EXPRESSION\".
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-06 18:11
你WATCH的可能是函数里面的局部变量,那么你就必须要运行的第一个语句才可以了!例如
MyFun(int i)
{ //1
   ULONG C;
   ULONG B=0;
   C=1;
   DbgPrint(\"Hellow word %d\",i);//2
}//3
你要在光标条经过了语句1之后才能WATCH  i的值
Agri
驱动牛犊
驱动牛犊
  • 注册日期2002-02-26
  • 最后登录2002-11-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-06 18:58
谢谢! 我也注意到这个问题了。但是也不完全成功。
例如:
ULONG ControlCode = IrpStack->Parameters.DeviceIoControl.IoControlCode;
ULONG InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;
ULONG OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;

// DebugPrint(\"DeviceIoControl: Control code %x InputLength %d OutputLength %d\",
// ControlCode, InputLength, OutputLength);
 

KIRQL irql;
KeAcquireSpinLock(&BufferLock,&irql);
当光标运行到KeAcquireSpinLock(&BufferLock,&irql); 时,我watch InputLength 成功,但watch OutputLength 失败。我都给搞晕了。
不知你是否遇到过这种情况.
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-08 14:44
我也遇到类似问题?
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-08 15:22
你说的失败指的是INVALID EXPRESSION吗?
如果是,那我没有碰到过,或者你用汇编代码来看吧!
如果不是,那么这个变量有可能是不可以使用的一个地址!你没有权限去查看他
h_love
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录2003-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-10 10:57
我看不是那个问题.
你用的是否是softice?
softice经常源码不对齐.
如果在2000下,要刷新你的sym.
刷新后也经常不能对齐,那就是你的版本有bug.下补丁吧.
站上有. :P
lms2000
驱动牛犊
驱动牛犊
  • 注册日期2001-05-19
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望102点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2002-04-10 14:17
有可能是编译优化把局部变量优化掉了,可以看看汇编,放在哪个寄存器中
Agri
驱动牛犊
驱动牛犊
  • 注册日期2002-02-26
  • 最后登录2002-11-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-14 14:54
谢谢!我使用vc编的程序,用什么方法转化为汇编呢?
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-05-04 17:12
个人认为,这个根本就是softice的bug.
111
游客

返回顶部