阅读:9571回复:44
请回答(SoftIce调试)
问题一:现象如下
{ ... char ch; ... ... ... } 如上定义的一个临时变量,为什么在单步调试时发现ch的值会经常变化,没有直接对其进行操作的代码!!! 问题二: 为什么经常 watch 这样的临时变量,会invalid expression 问题三 XxxDeviceControl { BYTE b; b= *(BYTE*)Irp->Associate->SystemBuffer; } 可是为什么b却得不到SystemBuffer地址的第一个字节的内容? |
|
|
沙发#
发布于:2004-08-20 19:03
我的经验,char变量,不管是全局还是局部,用WATCH都能看到(不超出作用域 )。而ULONG 型的,用WATCH 看就是 INVALID EXPRESSION 。我也很想知道原因。
|
|
板凳#
发布于:2003-12-30 10:29
问题二解答:全局变量用watch看,即ww;局部变量用local看,即wl。我是这样解决的,局部变量在watch中看的话都是Invalid,Expression.
|
|
地板#
发布于:2003-12-17 19:28
这就是指针带来的问题,JAVA,C#因此取消了指针
|
|
|
地下室#
发布于:2003-11-27 16:42
嗯!
好贴! |
|
|
5楼#
发布于:2003-11-19 11:23
我看了也长见识 ;)
|
|
6楼#
发布于:2003-10-10 15:49
it\'s very good for this question
|
|
7楼#
发布于:2003-10-10 15:47
提的问题真好
|
|
8楼#
发布于:2003-10-08 23:27
我发现用WATCH m_Kstrabc
这种有下划线的变量都不能查看,不知道为什么?? |
|
9楼#
发布于:2003-10-04 04:41
Because array can not be displayed in Watch, you will see it.
|
|
10楼#
发布于:2003-08-21 16:15
象这样的讨论越多越好。
|
|
|
11楼#
发布于:2003-08-11 20:16
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 |
|
12楼#
发布于:2003-07-29 07:36
经常来,还是有收获的啊!
|
|
13楼#
发布于:2003-07-23 17:52
不行就看看那个地址,直接监控地址肯定没错
|
|
14楼#
发布于:2003-07-14 22:08
学了些,^_^
|
|
15楼#
发布于:2003-07-14 14:41
你定义的变量如果不再使用, 他的内存可能被占用.
|
|
16楼#
发布于:2003-07-09 17:27
ch是临时变量,当程序跑出此函数时,此临时变量所占存储单元,可能被其他变量使用,softice监视的只是临时变量所占的固定地址的存储单元,当使用这个存储单元的变量有一个被重新赋值,他就被改变了。 为什么不看看前面讨论的内容再作结论? |
|
|
17楼#
发布于:2003-07-09 17:16
ch是临时变量,当程序跑出此函数时,此临时变量所占存储单元,可能被其他变量使用,softice监视的只是临时变量所占的固定地址的存储单元,当使用这个存储单元的变量有一个被重新赋值,他就被改变了。
|
|
18楼#
发布于:2003-06-16 13:24
用户被禁言,该主题自动屏蔽! |
|
19楼#
发布于:2003-05-26 11:51
问题一: Delphi我没有用过,但是丛VC编译器来看,本地变量使用堆栈来管理的,当然如果你越界肯定要破坏堆栈,还有在VC中,你没有进行初始化,则系统会所用0xCDCDCDCD来初始化(Debug版中,发行版好像是随即数),不知这对你有没有帮助 |
|
|
上一页
下一页