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

/ns/cn/tool/data/20010129095925.htm

SoftICE for WIN95中文命令解说(六)
Copyright (c) 1999 http://coobe.cs.hn.cninfo.net/~tianwei

命令: FAULTS
作用: 打开或关闭错误跟踪功能
语法: FAULTS [on | off]
用法:
FAULTS 命令将打开或关闭SoftICE的错误跟踪功能.
不加参数将显示当前的开关状态.

点评:
由于SoftICE做为一个DEBUGGER,FAULTS 默认为ON, 所
以一旦CPU有非法指令,SoftICE就会不停地弹出, 让你
知道错在哪里,实际在工作中这样的情况如果太频繁地
发生,最好将其置为OFF.我一般将其置为ON, 当发生非
法指令时再手工置为OFF.你也可以在WINICE.DAT 中一
开始就置其为OFF. 初学者一般不知道有这个命令, 一
旦发生非法指令,除了按R键,只有傻站着;)


命令: FILE
作用: 显示或切换当前源文件
语法: FILE [[*]file-name]
用法:
FILE 命令常用来辅助在源文件中没有符号表的地方下
断点. 用FILE命令将所需的源文件显示在代码窗口中,
用SS 命令查找一下,再用BPX或F9来下断点.
如果加文件名参数,则所选的文件变成当前文件, 并被
显示在代码窗口中. 如果没有文件名参数,则显示当前
的源文件(如果当前有的话).如果加 * ,则列出当前符
号表中所有源文件. 在WIN95中,用FILE 加文件名同时
也切换内存地址内容.

点评:
一般用于高级编程工具的辅助调试,如C语言等.不过这
些编程工具已经内置DEBUGGER,所以就看个人习惯了.


命令: FKEY
作用: 显示或修改当前快捷键定义
语法: FKEY [function-key string]
用法:
function-key: 快捷键:
F1 - F12 :
SF1 - SF12 : Shift键加F1 - F12
CF1 - CF12 : Ctrl键加F1 - F12
AF1 - AF12 : Alt键加F1 - F12
string : 一个或多个SoftICE的命令.
命令前加 ^ 表示在按快捷键时不显示
相应的命令内容.命令后加;代表回车.
FKEY 后只跟function-key,而不跟string,将取消该快
捷定义.除了用FKEY命令可以定义快捷键外,用SoftICE
的LOADER也能做到这一点
默认快捷键清单:
F1=h; F2=^wr;
F3=^src; F4=^rs;
F5=^x; F6=^ec;
F7=^here; F8=^t;
F9=^bpx; F10=^p;
F11=^G @SS:ESP; F12=^p ret;
SF3=^format; CF8=^XT;
CF9=TRACE OFF; CF10=^XP;
CF11=SHOW B; CF12=TRACE B;
AF1=^wr; AF2=^wd;
AF3=^wc; AF4=^ww;
AF5=CLS; AF8=^XT R;
AF11=^dd dataaddr->0;
AF12=^dd dataaddr->4;
CF1=altscr off; lines 60; wc 32; wd 8;
CF2=^wr;^wd;^wc;

点评: 无

命令: FLASH
作用: 在 P 和 T 命令执行过程中刷新Windows 屏幕
语法: FLASH [on | off]
用法:
如果将FLASH 置为 ON ,则在执行T或P命令时,SoftICE
将刷新一下Windows 屏幕,这在调试一个直接对显存操
作的程序时特别有用.在一般情况下,当用 P 命令跨过
一个CALL 时,而此 CALL 又调用显示驱动程序时,Sof-
tICE才重新刷新屏幕.
FLASH 命令不带参数将显示当前状态.默认FLASH OFF.

点评: 无

命令: FORMAT
作用: 改变数据窗口的显示格式
语法: FORMAT
用法:
FORMAT 命令用来改变数据窗口的显示格式.
SoftICE有快捷键 Shift-F3 来代替FORMAT.
显示格式将按 字节,字,双字,短实型,长实
型,10字节实型循环.

点评: 参见 D, DATA 命令.

命令: G
作用: 执行到某一地址
语法: G [=start-address] [break-address]
用法:
=start-address: 开始地址
break-address : 中断地址
G 命令不带参数将从SoftICE中返回.如果带参数break-
address,则SoftICE将在所指定的地址处下一个一次性
断点; 如果带=start-address,SoftICE 将从指定的地
址处开始执行,否则从当前CS:EIP处执行. 程序中其他
的断点(非G命令下的断点)照样起作用. 无论是谁先弹
出,都将清除G 命令所下的一次性断点.
G 命令不带参数类似于 X 命令.
G 命令在Windows95中使用除错寄存器, 如果除错寄存
器用完,则用INT 3.

点评: 由于G 命令缺省用DRx,所以有时可以对付一些在INT 3上作手脚的程序.

命令: GDT
作用: 显示全局描述符表
语法: GDT [selector]
用法:
selector: 指定GDT选择器
GDT 命令将显示全局描述符表的内容.如果加选择符参
数,则只显示此选择符所指的描述符.
输出:GDT 的线性基址和长度将显示在输出数据的顶行

输出数据的每一行内容的说明:
value: 最低两位即描述符特权级
type : 描述符类型,如下:
Code16 : 16位代码描述符
Data16 : 16位数据描述符
Code32 : 32位代码描述符
Data32 : 32位数据描述符
LDT : 局部描述符表描述符
TSS32 : 32位任务状态段描述符
TSS16 : 16位任务状态段描述符
CallG32: 32位调用门描述符
CallG16: 16位调用门描述符
TaskG32: 32位任务门描述符
TaskG16: 16位任务门描述符
TrapG32: 32位陷肼门描述符
TrapG16: 16位陷肼门描述符
IntG32 : 32位中断门描述符
IntG16 : 16位中断门描述符
Reserved: 保留的描述符
base : 描述符中的段基址
limit: 描述符中的段界限
DPL : 描述符特权级,0,1,2,3
present bit: P 或 NP 表示该段是否在内存中
segment attributes: 段特性:
RW: 数据段可读写
RO: 数据段只读
RE: 代码段可读可执行
EO: 代码段只可执行
B: TSS(任务状态段)忙置位
ED: 数据扩展方式
参见 LDT.

点评:
这段翻译并不完全用PDF手册上的.如"selector" 原指
选择符(器),用来指向描述符表中的描述符, 而 PDF中
type 的说明全用到 selector说的意思虽是一样,但和
别的文献矛盾,故认为不妥,将其翻译成descriptor 即
描述符.实际上可以看出,一个选择符指向一个描述符,
两者是一致的.描述符类型实际上也就是指向它的选择
符类型.


命令: GENINT
作用: 强行产生一个中断
语法: GENINT [nmi | int1 | int3 | interrupt-number]
用法:
interrupt-number: 对Windows95来说,0-5fh
GENINT强行产生一个中断,用于SoftICE和别的DEBUGGER
协作的时侯,如:GENINT nmi 将使SoftICE将控制返还给
CodeView For Dos.(对其他DEBUGGER,请尝试0,1,2,3)
GENINT还用于测试中断例程.但SoftICE不检测一个中断
是否有效,它只是摹拟中断的产生,所以当用此命令时要
注意相应的中断例程是否存在.

点评: 无