|
|
SoftICE for WIN95中文命令解说(二)
|
|
Copyright (c) 1999 http://winice.yeah.net |
![](tri1.gif) |
命令: |
BC |
作用: |
清除一个或多个断点 |
语法: |
BC list | * |
用法: |
清除断点后,用BL命令就看不到断点列表, 且被清除的
断点不再起作用.
参数:
list: 可以是将要清除的一系列断点,中间用空格或逗
号隔开.
* : 清除所有的断点.
|
点评: |
BC==Breakpoint Clearing |
![](tri1.gif) |
命令: |
BD |
作用: |
使一个或多个断点失效 |
语法: |
BD list | * |
用法: |
使某个断点失效不同与 BC 命令的清除,暂时失效的断
点可以用 BE 命令来恢复.而 BC 命令是彻底清除.
参数:
list: 可以是单个,也可以是一系列断点, 中间用空格
或逗号隔开.
* : 禁止所有的断点.
|
点评: |
BD==Breakpoint Disablling |
![](tri1.gif) |
命令: |
BE |
作用: |
使一个或多个断点恢复有效 |
语法: |
BE list | * |
用法: |
用来恢复前次用 BD 命令使之失效的断点. (每当新定
义断点或编辑断点时,系统自动将其置为有效)
参数:
list: 可以是单个,也可以是一系列断点, 中间用空格
或逗号隔开.
* : 恢复所有的断点.
|
点评: |
BE==Breakpoint enablling |
![](tri1.gif) |
命令: |
BH |
作用: |
在SoftICE历史数据库中显示或是选择曾经设过的断点 |
语法: |
BH |
用法: |
用BH命令后,SoftICE将显示一个表,每一行是一个断点
,都是以前使用者曾经下过的断点, 这时可以用上下光
标键来定位,用INSERT键选择,再用ENTER键来确定. 用
ESC键取消.SoftICE只记录最近的32个断点. 而且只在
WIN95正常退出后记录(记录到WINICE.BRK中), 这样就
有一个问题.如果你在MSDOS.SYS配置中是BootGUI=1的
话(即最正常的启动方式),当你SHUT DOWN机器时,控制
并不回到SoftICE手中,就无法记录刚才的断点.这时只
有改为BootGUI=0.
|
点评: |
注意:SoftICE只在SHUT DOWN时记录,如果你用"重新启
动并切换...",那是不行的.至少在我的V3.20是不行的
.而且,如果你"重新启动并切换...", 再用EXIT命令想
退回到WIN95,很容易出现VxD联接错.因为这样 WINICE
并没有完全退出内存,用 MEM.EXE可以看到这点.所以,
SoftICE的使用者最好在MSDOS.SYS中将上面所说的Boo
-tGUI置为0.如果怕这样用多重配置的话还要每次开机
敲一个WIN,可以在AUTOEXEC.BAT中改动,加入WIN.COM.
(可不要在WINICE.EXE后再加WIN.COM!画蛇添足!)
若用SoftICE次数不多的话, 可以每次启动WINDOWS后,
再重新启动并切换到MS-DOS方式,再打WINICE.EXE, 这
样也可以的. BH的好处是,可以省去纸笔, 下次重调试
这个程序时,不用再挖空心思想断点了.
|
![](tri1.gif) |
命令: |
BL |
作用: |
显示当前所设的断点 |
语法: |
BL |
用法: |
BL 命令显示当前所有断点的序号 (这个序号被BC BE
BD 等命令所用),类型,是否被禁止等信息.如果是被禁
止的断点,会在序号后跟一个"*"号.比如用上面提到的
BD 命令会产生这种效果)
|
点评: |
BL==Breakpoint listing |
![](tri1.gif) |
命令: |
BMSG |
作用: |
在WIN95的消息上下断点 |
语法: |
BMSG window-handle [L] [begin-msg [end-msg ]] [IF expression][DO "command1;command2;..."] |
用法: |
window-handle: 消息发向的窗口句柄
begin-msg : 消息标识字的范围,如果没有end-msg
,那么只在begin-msg上下断点, 否则
在区域内所有消息都会被下断点
end-msg : 见上.
IF-expression: 表达式的值为真时,SoftICE才弹出.
DO "command1;command2;...":
当到达断点时,执行的一系列SoftICE
命令.
L : 表示不弹出SoftICE,而是在命令窗口
中记录WIN95消息.
上面只有窗口句柄是必需的,其他都是可选项. 如果没
有指定在哪个MSG上下断点, 那么所有发向该窗口的消
息都会被拦截.窗口句柄可以用HWND命令来观看,MSG标
识符可以用 WMSG 命令来察看,可以是16进制的数, 也
可以用习惯的书写方式,如:WM_CREATE.SoftICE弹出后
,会停在处理该消息的过程的第一句代码上.
|
点评: |
BMSG=(set)Breakpoint on MeSsaGe
WINDOWS本身是由消息驱动的, 所以跟踪一个消息会得
到相当底层的答案,我主页上一篇"修改RICHWIN4.3"的
文章就是一个例子.
|
![](tri1.gif) |
命令: |
BPE |
作用: |
编辑一个已存在的断点. |
语法: |
BPE index_number
|
用法: |
index_number: 断点的序号,用 BL 命令可以看到.
用BPE命令可以很方便地修改一个已经存在的断点, 但
要注意一点: BPE 在执行时,会先将你所要修改的断点
清除,然后再将改过的使能,如果你在修改时按ESC键退
出修改,那么原先的断点也就不存在了, 修改错误的结
果也是一样的.原先的断点消失.
|
点评: |
参见后面的 BPT 命令. |
|