xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2310回复:15

关于Softice调试源程序的一个常见问题

楼主#
更多 发布于:2002-04-18 15:14
 谁知道为什么编译后的驱动程序,使用SoftIce调试,某些语句执行不到??
但实际上应该执行到了,因为如果没执行到,肯定不可能跑起来。
Softice有时怎么也某些变量。
大部分的语句都可以调试,大部分的变量都能找到。
 
我估计跟C编译开关有关?但不知道该如何设置。
  


  :mad: :mad: :( :(
Oh,My God!
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-02-26 10:00
编译器被优化了!修改setenv.bat文件!


:checked

rem set up an NT checked build environment

set BUILD_ALT_DIR=chk
set NTDBGFILES=1
set NTDEBUG=ntsd
set NTDEBUGTYPE=windbg
set MSC_OPTIMIZATION= /Od /Oi
琢磨悟真知
flyfox
驱动中牛
驱动中牛
  • 注册日期2001-04-05
  • 最后登录2012-08-03
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望22点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-21 12:56
是不是被编译器优化了,象release版本一样。
具体请把代码帖出来看看。
一剑西来,天外飞仙
xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-21 11:59
 
不是你说的那个原因,2000和98的ice当然不同了。
拜托各位以后弄点正确的答案。不要老讲些没用的话。
我总算觉得,这里的人大部分都是水平平平的。碰到
具体问题没一个能解。从回答问题的质量都可以知道
都是一些小虾级人物。


 :mad:

[编辑 -  4/21/02 作者: xqf]
Oh,My God!
escape
驱动老牛
驱动老牛
  • 注册日期2002-02-01
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-20 12:29
 :(
我在2000下遇
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-19 21:24
xqf:
不要随便用别人的头像!巧合?
哦,不好意思。。。
[color=red]大头鬼! :P[/color]
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-19 18:24
我也遇到过,在有一些语句的时候,走单步可是却跳过去了,而且多发生在付值语句。很多变量?,Watch都看不到。以前也看到过讨论这个问题的帖子,可是到底也没有谁能说明白为什么。
我就是我,没什么可说的。
xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-19 12:40
我发现你把问题扯远了,或者你根本就没弄明白我的意思。

 


 :D :D
Oh,My God!
Iamme
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2005-10-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-19 11:32
在你想调试的部分中添加_asm int 3
在softice中下指令i3here on
然后调试你的驱动
Go,go ahead
xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-19 10:58

  不好意思,你的方法不行!

 :mad: :mad:
Oh,My God!
jeffhu
驱动牛犊
驱动牛犊
  • 注册日期2002-02-21
  • 最后登录2005-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-04-19 10:16
我碰到过。
解决的方法是:
1。删除.pdb, .nms
2。更改一下工程的目录名,rebuild all
3。再用softice reload,transfer
hehe
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-04-18 18:10
DS中有个工具自带的。叫啥T什么来这!忘记名字了^_^ :D :D
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-04-18 17:35

 
当然不是你所说的那种情况。
如果是那种弱智的情况,早就解决了。
Oh,My God!
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-04-18 17:30
谁知道为什么编译后的驱动程序,使用SoftIce调试,某些语句执行不到??
但实际上应该执行到了,因为如果没执行到,肯定不可能跑起来。
Softice有时怎么也某些变量。
大部分的语句都可以调试,大部分的变量都能找到。
 
我估计跟C编译开关有关?但不知道该如何设置。
  


  :mad: :mad: :( :(

装入的驱动程序调试文件和驱动程序可执行文件不一致,导致原因可能是在Loader *.sys前修改了源文件并保存了,这样两者就不能对应。
解决办法:Rebuild ALL and save all source files
重新装载*.sys
Tom_lyd
xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-04-18 17:20

  估计是因为VC的调试文件pdb是为公开的,SoftIce也没有完全解开。你可以试试WinDbg。
(SoftIce使用NMS作为调试文件,但是他可以将pdb转换后使用)


[编辑 -  4/18/02 作者: xqf]
Oh,My God!
caca
驱动牛犊
驱动牛犊
  • 注册日期2001-03-26
  • 最后登录2002-07-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-04-18 17:13
谁知道为什么编译后的驱动程序,使用SoftIce调试,某些语句执行不到??
但实际上应该执行到了,因为如果没执行到,肯定不可能跑起来。
Softice有时怎么也某些变量。
大部分的语句都可以调试,大部分的变量都能找到。
 
我估计跟C编译开关有关?但不知道该如何设置。
  


  :mad: :mad: :( :(


这个问题我也遇到了。困惑……
caca
游客

返回顶部