写在前面
第一部分(.-A)
第二部分(B-B)
第三部分(B-B)
第四部分(C-D)
第五部分(D-F)
第六部分(F-G)
第七部分(H-I)
第八部分(I-L)
第九部分(M-P)
第十部分(P-P)
第11部分(P-S)
第12部分(S-T)
第13部分(T-V)
第14部分(V-W)
第15部分(W-Z)
  SoftICE for WIN95中文命令解说(六)
  Copyright (c) 1999 http://winice.yeah.net
命令: 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不检测一个中断
是否有效,它只是摹拟中断的产生,所以当用此命令时要
注意相应的中断例程是否存在.
点评:
  回到文章的开头