发信人: Reinhard.bbs@bbs.sjtu.edu.cn (摘星的人), 信区: cnhacker
标 题: SOFTICE 程式追踪软体使用说明 [3/7] -- Alex 整理
发信站: 饮水思源站 (Fri Apr 25 18:50:07 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!sjtubbs
出 处: bbs.sjtu.edu.cn
第 三 章 30分钟内学会 DEBUG
§3.1 序言
Soft-ICE 的所有动作都发生在一个可以随时叫出的视窗中。Soft-ICE 的所有
指令都可以显示在一个小视窗中,但这个视窗可以扩大到整个萤幕。当你把 Soft-
ICE 当做其它除错程式的助手使用时,你可能会使用小视窗。当你把 Soft-ICE 当
独立除错器用时,你可能会使用大视窗。
如果你使用原来磁片上的设定档( S-ICE.DAT ),那视窗一开始是占满整个
萤幕的。
§3.2 叫出视窗
载入 Soft-ICE 後,你可以随时叫出视窗。一开始你只要按 Ctrl - D 即可叫
出 Soft-ICE 。使用 ALTKEY 的指令可以更改此热键。( 参阅 §5.8 )
§3.3 由视窗中返回
使用 X 这个指令或你叫出 Soft-ICE 的热键均可以回到原先的画面。你在
Soft-ICE 中设定的所有中断点此时开始启动。
§3.4 改变视窗大小
你可以改变 Soft-ICE 视窗的宽度和高度。在独立模式中显示程式码时,改变
视窗大小的功能特别有用。视窗的高度为 8 到 25 行。按
Alt - ↑ 使视窗变高
Alt - ↓ 使视窗变短
使用 WIN 的指令以改变视窗的宽度。( 参阅 §5.9 )直接输入 WIN 而不
加参数会在下面两种模式中切换:
WIDE 模式 --- 占满整个萤幕
NARROW 模式 --- 46 个字元宽
有些指令像 D 、E 、R 、U ,使用 WIDE 模式以显示更多讯息时较为方便。
§3.5 移动视窗
Soft-ICE 的视窗是可以移动且可以定位在萤幕上的任何地方。这功能在 NARROW
模式下特别有用。在你需要时移动视窗以便观看萤幕上被视窗挡到的地方。你可以
用下列按键控制萤幕的移动:
Ctrl - ↑ 向上移一行
Ctrl - ↓ 向下移一行
Ctrl - → 向右移一列
Ctrl - ← 向左移一列
§3.6 行编辑按键
Soft-ICE 容易使用的行编辑器让你可以叫回并编辑上一个指令。它的功能类似
那些有名的 CED 行编辑器。以下按键可以帮助你在命令窗中编辑指令:
→ --- 游标右移
← --- 游标左移
Ins --- 切换插入模式
Del --- 消除现在字元
Home --- 把游标移到一行的开头
End --- 把游标移到一行的结尾
↑ --- 显示上一个指令
↓ --- 显示下一个指令
Shift - ↑ --- 显示向上卷一行
Shift - ↓ --- 显示向下卷一行
Page Up --- 显示向上卷一页
Page Down --- 显示向下卷一页
BackSpace --- 消除前一个字元
Esc --- 取消目前命令
当游标在资料窗或程式码窗时,另有特殊的按键,这在後面将会讨论到。
§3.7 动作状态行
在萤幕底部的状态行提供指令语法的辅助。
§3.8 指令语法
Soft-ICE 是个由指令操控的除错工具。要令 Soft-ICE 有动作,你要下指令给
它。指令可以因不同参数而有改变。
所有的指令都是 1 到 6 个字元的字串且不分大小写。所有的参数都是字串或
运算式。
运算式是典型的数字,也可以是数字和运算子的结合。所有的数字均以 16 进
位表示。一个位元组 (byte) 参数有 2 位,字组 (word) 参数有 4 位。双字组
(double word) 是两个由 : 分隔的字组参数。以下是一些参数的例子:
12 --- 位元组参数
10FF --- 字组参数
E000:0100 --- 双字组参数
暂存器在运算式中可以拿来当位元组或字组参数用。例如: U CS:IP -10 的指
令会从现在指令指标所指位址向前 10 byte 开始反组译。以下的暂存器名称可以用
在运算式中:
AL 、AH 、AX 、BL 、BH 、BX 、CL 、CH 、CX 、DL 、DH 、DX 、DI 、
SI 、BP 、SP 、IP 、CS 、DS 、ES 、SS 、FL
§3.8.1 指定记忆体位址
许多 Soft-ICE 的指令要求以记忆体位址当参数。一个记忆体位址是由两个
16 位元的字组中间以分号 (:) 分隔而组成的。第一个字组表示节段位址 (segment
address) 而第二个字组表示差距位址 (offset segment) 。
公用符号可以在所有 Soft-ICE 指令中用来取代位址。公用符号必需先由
Soft-ICE 的程式载入器 (LDR.EXE) 载入。参阅第七章以取得使用公用符号的完
整说明。
Soft-ICE 运算式的运算器接受一些特殊字元和位址的使用。这些字元是:
$ --- 现在 CS:IP 所指的位址
@位址 --- 间接双字组
.number --- 原始程式码行号
当你要输入目前指令指标的位址时,可以用 $ 代替 CS:IP 。
使用 @ 可以让你参考到位址所指处的双字组。你可以使用多层的 @ 。
如果用 . 来代表位址,它是用来代表原程式码中的行号,而非实际的位址。
这只有在原始程式码有载入的情形下才能使用。这种情况下,位址是以 10 进位
表示。
例如:
U.1234 --- 从原始程式码第 1234 行开始反组译
U $-10 --- 从目前指令指标所指处向前 10 byte 开始反组译
G @SS:SP --- 假如你目前正在第一个中断程序,下这个指令会在堆叠的
返回位址设个暂时中断点并跳过此中断程序。
§3.9 功能键
功能键可以代替一串 Soft-ICE 中之指令。功能键可以由命令行设定或从
S-ICE.DAT 中定义。
Soft-ICE 磁片上原来的 S-ICE.DAT 已经对 12 个功能键有设定。你可以在任
何时候改变任何一个设定。个键定义如下表所示。这样设计是为了方便微软的
CodeView 的使用者。
F1 --- 显示一般辅助画面 ( H; )
F2 --- 在暂存器窗中切换 ( ^WR; )
F3 --- 改变目前原始码的模式 ( ^SRC; )
F4 --- 回复视窗 ( ^RS; )
F5 --- 回到原程式 ( ^X; )
F6 --- 在命令窗中和程式码窗中切换 ( ^EC; )
F7 --- 执行到游标所在那行 ( ^HERE; )
F8 --- 单步执行 ( ^T; )
F9 --- 在游标所在那行设中断点 ( ^BPX; )
F10 --- 单步执行 ( ^P; )
F11 --- 执行到返回位址 ( ^G @SS:SP; )
F12 --- 显示 Soft-ICE 的版别 ( ^VER; )
指令前的 ^ 会让这个指令不显示出来。指令後的 ; 则代表按下 Enter 。输入
FKEY 的指令可以显示目前功能键所代表的意义。要使用功能键直接按下功能键即可
,不需再键入指令。要自定功能键,参阅 §5.8 FKEY 指令的解说或第六章有关
在 S-ICE.DAT 设定功能键的部份。
§3.10 辅助
利用辅助的指令可以得到有关指令的简单解说、语法和使用例子。要得到辅助
的资讯,键入:
? 或 H --- 显示所有指令和运算子的简短解说
? 指令 或 H 指令 --- 显示关於指令语法和例子更详细的资讯
? 运算式 或 H 运算式 --- 把运算式的结果以 16 、10 进位及 ASCII 码
显示出来
§3.11 课程
(好多喔....偷懒一下,跳过去吧!)
--
沉默的人
Reinhard Young
※ 来源:·饮水思源站 bbs.sjtu.edu.cn·[FROM: 202.96.210.121]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.583毫秒