阅读:2309回复:15
关于Softice调试源程序的一个常见问题
谁知道为什么编译后的驱动程序,使用SoftIce调试,某些语句执行不到??
但实际上应该执行到了,因为如果没执行到,肯定不可能跑起来。 Softice有时怎么也某些变量。 大部分的语句都可以调试,大部分的变量都能找到。 我估计跟C编译开关有关?但不知道该如何设置。 :mad: :mad: :( :( |
|
|
沙发#
发布于:2002-04-18 17:13
谁知道为什么编译后的驱动程序,使用SoftIce调试,某些语句执行不到?? 这个问题我也遇到了。困惑…… |
|
|
板凳#
发布于:2002-04-18 17:20
估计是因为VC的调试文件pdb是为公开的,SoftIce也没有完全解开。你可以试试WinDbg。 (SoftIce使用NMS作为调试文件,但是他可以将pdb转换后使用) [编辑 - 4/18/02 作者: xqf] |
|
|
地板#
发布于:2002-04-18 17:30
谁知道为什么编译后的驱动程序,使用SoftIce调试,某些语句执行不到?? 装入的驱动程序调试文件和驱动程序可执行文件不一致,导致原因可能是在Loader *.sys前修改了源文件并保存了,这样两者就不能对应。 解决办法:Rebuild ALL and save all source files 重新装载*.sys |
|
|
地下室#
发布于:2002-04-18 17:35
当然不是你所说的那种情况。 如果是那种弱智的情况,早就解决了。 |
|
|
5楼#
发布于:2002-04-18 18:10
DS中有个工具自带的。叫啥T什么来这!忘记名字了^_^ :D :D
|
|
|
6楼#
发布于:2002-04-19 10:16
我碰到过。
解决的方法是: 1。删除.pdb, .nms 2。更改一下工程的目录名,rebuild all 3。再用softice reload,transfer |
|
|
7楼#
发布于:2002-04-19 10:58
不好意思,你的方法不行! :mad: :mad: |
|
|
8楼#
发布于:2002-04-19 11:32
在你想调试的部分中添加_asm int 3
在softice中下指令i3here on 然后调试你的驱动 |
|
|
9楼#
发布于:2002-04-19 12:40
我发现你把问题扯远了,或者你根本就没弄明白我的意思。
:D :D |
|
|
10楼#
发布于:2002-04-19 18:24
我也遇到过,在有一些语句的时候,走单步可是却跳过去了,而且多发生在付值语句。很多变量?,Watch都看不到。以前也看到过讨论这个问题的帖子,可是到底也没有谁能说明白为什么。
|
|
|
11楼#
发布于:2002-04-19 21:24
xqf:
不要随便用别人的头像!巧合? 哦,不好意思。。。 |
|
|
12楼#
发布于:2002-04-20 12:29
:(
我在2000下遇 |
|
13楼#
发布于:2002-04-21 11:59
不是你说的那个原因,2000和98的ice当然不同了。 拜托各位以后弄点正确的答案。不要老讲些没用的话。 我总算觉得,这里的人大部分都是水平平平的。碰到 具体问题没一个能解。从回答问题的质量都可以知道 都是一些小虾级人物。 :mad: [编辑 - 4/21/02 作者: xqf] |
|
|
14楼#
发布于:2002-04-21 12:56
是不是被编译器优化了,象release版本一样。
具体请把代码帖出来看看。 |
|
|
15楼#
发布于: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 |
|
|