欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

SoftICE for WIN95中文命令解说(二)

程序员文章站 2022-06-22 19:43:54
SoftICE for WIN95中文命令解说(二) Copyright (c) 1999 http://coobe.cs.hn.cninfo.net/~tianwei 命令: BC 作用: 清除一个或多个断点 语法: BC list | * 用法: 清除断点后,用BL... 08-10-08...
softice for win95中文命令解说(二) copyright (c) 1999 http://coobe.cs.hn.cninfo.net/~tianwei 命令: bc 作用: 清除一个或多个断点 语法: bc list | * 用法: 清除断点后,用bl命令就看不到断点列表, 且被清除的断点不再起作用.参数: list: 可以是将要清除的一系列断点,中间用空格或逗 号隔开.* : 清除所有的断点. 点评: bc==breakpoint clearing 命令: bd 作用: 使一个或多个断点失效 语法: bd list | * 用法: 使某个断点失效不同与 bc 命令的清除,暂时失效的断点可以用 be 命令来恢复.而 bc 命令是彻底清除.参数:list: 可以是单个,也可以是一系列断点, 中间用空格 或逗号隔开.* : 禁止所有的断点. 点评: bd==breakpoint disablling 命令: be 作用: 使一个或多个断点恢复有效 语法: be list | * 用法: 用来恢复前次用 bd 命令使之失效的断点. (每当新定义断点或编辑断点时,系统自动将其置为有效)参数:list: 可以是单个,也可以是一系列断点, 中间用空格 或逗号隔开.* : 恢复所有的断点. 点评: be==breakpoint enablling 命令: 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的好处是,可以省去纸笔, 下次重调试这个程序时,不用再挖空心思想断点了. 命令: bl 作用: 显示当前所设的断点 语法: bl 用法: bl 命令显示当前所有断点的序号 (这个序号被bc bebd 等命令所用),类型,是否被禁止等信息.如果是被禁止的断点,会在序号后跟一个"*"号.比如用上面提到的bd 命令会产生这种效果) 点评: bl==breakpoint listing 命令: 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 messagewindows本身是由消息驱动的, 所以跟踪一个消息会得到相当底层的答案,我主页上一篇"修改richwin4.3"的文章就是一个例子. 命令: bpe 作用: 编辑一个已存在的断点. 语法: bpe index_number 用法: index_number: 断点的序号,用 bl 命令可以看到.用bpe命令可以很方便地修改一个已经存在的断点, 但要注意一点: bpe 在执行时,会先将你所要修改的断点清除,然后再将改过的使能,如果你在修改时按esc键退出修改,那么原先的断点也就不存在了, 修改错误的结果也是一样的.原先的断点消失. 点评: 参见后面的 bpt 命令.