SoftICE使用说明(七)

   §5.7 视窗指令

指令:

WR --- 切换暂存器窗

WC --- 切换/设定程式码窗之大小

WD --- 切换/设定资料窗之大小

EC --- 进入/离开程式码窗

. --- 定位目前的程式码

Soft-ICE 有三种视窗:暂存器窗、资料窗和程式码窗。这些视窗都可以随时切
换出来或关闭。资料和程式码窗可以改变其大小;暂存器窗的大小是固定的。视窗

的顺序总是固定不变。从萤幕顶端由上而下依次是暂存器窗、资料窗、程式码窗。


WR --- 切换暂存器窗

语法: WR

解说:

如果暂存器窗目前是不可见的则这个指令会把它切为可见。若暂存器窗目前
是可见的,WR 指令会关闭暂存器窗。

暂存器窗会显示 8086 暂存器及各旗号之值。

内定的功能键: F2

WC --- 切换/设定程式码窗之大小

语法: WC [window-size]

window-size --- 1 到 21 间的十进位数。

解说:

如果没有指定 window-size ,这个指令会切换程式码窗。如果程式码窗是不
可见的会把它切为可见;若是可见的则会关闭之。

如果有指定 window-size ,则程式码窗会重设大小。如果程式码窗本来是不
可见的则会以指定的大小显示。

〔注〕如果你想把游标移到程式码窗中要使用 EC 指令。参阅 EC 指令的解说以

取得更多资讯。

〔例〕 WC 12
如果程式码窗是不可见的则会显示一个 12 行大小的程式码窗。如果程式
码窗目前在萤幕上,它的大小会重设为 12 行。

WD --- 切换/设定资料窗之大小

语法: WD [window-size]

window-size --- 1 到 21 间的十进位数。

解说:

如果没有指定 window-size ,这个指令会切换资料窗。如果资料窗是不
可见的会把它切为可见;若是可见的则会关闭之。

如果有指定 window-size ,则资料窗会重设大小。如果资料窗本来是不
可见的则会以指定的大小显示。

〔例〕 WD 1
如果资料窗是不可见的则会显示一个 1 行大小的资料窗。如果资料窗
目前在萤幕上,它的大小会重设为 12 行。

EC --- 进入/离开程式码窗

语法: EC

解说:

EC 指令会使游标在程式码窗和指令窗中切换。如果游标在指令窗中,它会被
移到程式码窗中。如果游标在程式码窗中,它会被移到指令窗中。

当游标在程式码窗时,会有更多可用的功能,这使得除错更为容易。这些功
能是:

* Point-and-shoot break points
Point-and-shoot break points 是用 BPX 指令设置的。如果没有加参数
,会在目前游标所在位置设置中断点。游标所在那行必须包含程式码。(
如果你不确定,把程式码窗以混合的模式开著) 内定 BPX 的功能键是 F9


* Go to cursor line
你可以在游标所在位置设个暂时中断点,用 HERE 指令执行到那里。游标
所在那行必须包含程式码。(如果你不确定,把程式码窗以混合的模式开
著) 内定 BPX 的功能键是 F7 。

* Scrolling the code window
只有当游标在程式码窗中时才能卷动程式码窗。卷动的按键在程式码窗中
有不同的定义。

UP --- 把程式码窗向上卷一行。
DOWN --- 把程式码窗向下卷一行。
PageUp --- 把程式码窗向上卷一页。
PageDown --- 把程式码窗向下卷一页。

〔注〕 程式码窗必须是可见的 EC 指令才能使用。

. --- 定位目前的程式码

语法: .

解说:

当程式码窗是可见的时候,"." 指令会显示目前的程式码。

§ 5.8 除错器设定指令

指令:

PAUSE --- 显示满一个萤幕後暂停

ALTKEY --- 设定 Soft-ICE 的启动热键

FKEY --- 显示、修改功能键

BASE --- 设定/显示目前的基数

CTRL-P --- 把 LOG 送到印表机

Print-Screen --- 印出目前萤幕

PRN --- 设定印表机的输出埠

PAUSE --- 显示满一个萤幕後暂停

语法: PAUSE [ON | OFF]

解说:

PAUSE 指令会在每一页的结束时暂停萤幕。如果 PAUSE 设为 ON,Soft-ICE
会提示你按任意键以继续卷动视窗,提示讯息会显示在萤幕底部的状态行里。

如果没有指定任何参数则会显示目前 PAUSE 的状态。

PAUESE 的内定值是 ON。

〔例〕 PAUSE ON
这个指令指定接下来萤幕上的显示会等你输入任意键後才继续卷动。

ALTKEY --- 设定 Soft-ICE 的启动热键

语法: ALTKEY [ALTletter] | [CTRLletter] | [SYSREQ]

letter --- 任何一字母 (A - Z)

解说:

ALTKEY 指令可以让你改变用来叫出 Soft-ICE 的热键。你可以把热键改成
CTRL + 字母、ALT + 字母或是 SysRq (即 PrtScr) 键。

有时候你或许会使用会和 Soft-ICE 的 Ctrl-D 热键相冲突的程式,避免这
种冲突的方法之一是使用 ALTKEY 指令改变叫出 Soft-ICE 的热键。另一个方法

则是在热键组合中多按个 SHIFT 键,Soft-ICE 对这样的组合不会有反应,所以

能把热键传到你的程式去。举例来说,如果你使用的常驻程式是以Ctrl-D叫出
来的,试著用Ctrl-Shift-D来叫出你的程式。有些键盘上你必须按 Alt-PrtScr
来模拟发出个 System Request。小心不要意外的把萤幕上的东西印了出来。

如果没有指定参数则会显示目前的热键。

内定的热键是 Ctrl-D。

〔例〕 ALTKEY ALT Z
这道指令指定 Ctrl-Z 是叫出 Soft-ICE 的热键。

FKEY --- 显示、修改功能键

语法: FKEY [function-key-name string]

function-key-name --- F1, F2...... F12

string --- string 包含任何 Soft-ICE 的指令和特殊字元:^ 及 ;。^ 是
用来让指令不显示出来,; 则代表按下 ENTER。

解说:

FKEY 指令是用来指定某功能键所代表的指令字串,功能键可设定来代表任何
Soft-ICE 中的指令。

如果没有指定参数则会显示目前各功能键代表的指令。

要取消某个功能键可以用这样的方法:FKEY 加 function-key-name,然後接
上一个空白字串。

你也可以在设定档 S-ICE.DAT 中预先指定功能键的功能。参阅 §6.4 以
取的更多有关在设定档中设定功能键的资讯。

在功能键设定字串中加上归位键的符号可以让一个功能键代表一系列的指令
指令。归位键是用 ; 来表示。

如果你在功能键的设定前面加上 ^ (Shift-6),则接下来的指令将不会显示
出来。指令的作用还是一样没变,但是显示在指令窗中的所有讯息(包括错误讯
息) 都不会再出现。这个模式在指令会改变视窗中资料而你又不想因此造成指令

窗中的混乱时特别有用。

当功能键有加上 ^ 设定时,你可以在键入其他指令的途中使用这个功能键而
不会对输入中的指令造成任何影响。例如,如果你使用的是 F2 的内定值,你可

以在输入你下一个指令的时候按 F2 来切换暂存器窗。


〔注〕Soft-ICE 有个 S-ICE.DAT 的设定档,你可以把功能键的设定写在这个档

案中,这样在载入 Soft-ICE 的时候会自动设定功能键。在设定档中设定
功能键的语法是: function-key-name = "string" 。在设定档中设定功
能键的时候要用双引号把字串括起来。

〔例〕 FKEY F2 ^WR; (command line)
这道指令用来设定 F2 代表切换暂存器窗的指令, ^ 代表这个指令不会显
示出来, ; 代表按下 Enter。如此 F2 键就可以用来切换暂存器窗的 on
或 off,而且即使是在输入其他指令的时候也可以随时使用。

〔例〕 FKEY F1 "G CS:120; R; G CS:" (command line)
这个例子显示你可以用一个功能键代表许多指令,也可以代表一个指令的
一部份,等待使用者的输入来完成它。输入这道指令後,按下 F1 键会执
行到 CS:120 处,显示目前的暂存器之值,然後显示 G 指令等待使用者的
输入。

〔例〕 FKEY F1 WD 3;D DS:100; (command line)
这个例子会设定 F1 键代表一串指令。这个按键是可见的,而且以 Enter
结束。它会把资料窗设为三行的大小并显示从 DS:100 处起的的资料。

〔例〕 F1 = "WR;WD 2; WC 10;" (S-ICE.DAT)
如果这一行是放在 S-ICE.DAT 中,当载入 Soft-ICE 时会自动设定 F1 键
。当在 Soft-ICE 中按下 F1 键时,它会切换暂存器窗,打开一个二行的
资料窗,及一个十行的程式码窗。参阅第六章以取得更多有关在 S-ICE.DAT
设定功能键的资讯。

BASE --- 设定/显示目前的基数

语法: BASE [10 | 16]

解说:

BASE 指令是用来设定基数是以 10 或 16 为底。以 10 为底在小视窗模式中
会受到限制,这是受到视窗宽度的影响。即使是在大视窗模式中有些指令显示的

资料数目也会受限制。

当基数为 10 的时候,所有输入和显示的数字和位址都是以十进位表示。如
果基数是 16 的话,则是除了原始码行号,WIN 指令中的萤幕座标、大小以 10
进位表示外,均为 16 进位。

基数的内定值是 16。

〔例〕 BASE 16
这道指令会会把基数设为 16。

CTRL-P --- 把 LOG 送到印表机

语法: CTRL - P

解说:

在你按下 CTRL - P 後,所有显示在指令窗中的的讯息也会被送到印表机去
。要停止把 LOG 送到印表机的动作只要再按一次 CTRL - P 即可。

当你用 CTRL - P 送许多资料到印表机时,会许你会想把 PAUSE 设为 OFF,
这样资料才可以一直卷动下去而不需要去按键。

Print-Screen --- 印出目前萤幕

语法: Print-Screen

解说:

按下 Print-Screen 键後会把整个萤幕上的东西倾印印表机去。

如果你只是想印出记忆体内容或是某个指令的的辅助资料,使用 CTRL - P
会比用 Print-Screen 快得多,这是因为Print-Screen会把萤幕上包括边界的
每个字元都送到印表机去。

PRN --- 设定印表机的输出埠

语法: PRN [LPTx | COMx]

x --- 介於 1 到 4 的数字

解说:

PRN 指令允许你把 CTRL - P 和 Print-Screen 的资料送到不同的印表机去


如果没有指定参数则会显示目前指定的印表机。

〔例〕 PRN COM 1
这道指令会把 CTRL - P 和 Print-Screen 的输出送到 COM 1 埠去。

§ 5.9 萤幕控制指令

指令:

FLASH --- 执行 P 或 T 指令时还原萤幕

FLICK --- 减轻萤幕的闪烁

WATCHV --- 设定监控显示模式

RS --- 显示程式萤幕

CLS --- 清除视窗

ALTSCR --- 转换到替换萤幕

WIN --- 改变 Soft-ICE 的视窗大小

FLASH --- 执行 P 或 T 指令时还原萤幕

语法: FLASH [ON | OFF]

解说:

FLASH 指令让你指定在 T 或 P 指令执行时是否要还原萤幕。如果你指定要
还原萤幕,则在T或P指令执行的时候会短暂的还原一下。在对会存取VIDEO
MEMORY 的程式片段时你会需要用到这个功能。

如果 P 指令用来执行一个 CALL 或中断,则一定会有萤幕还原的动作,因为
执行的函式中可能会对萤幕写入。

如果没有指定参数则会显示目前 FLASH 的状态。

FLASH 的内定值是 OFF。

〔例〕 FLASH ON
这道指令会把 FLASH 的状态设为 ON。执行任何 P 或 T 指令时会还原萤
幕。

FLICK --- 减轻萤幕的闪烁

语法: FLICK [ON | OFF]

解说:

有些显示卡在输出字元之前要先等垂直、水平扫描完成才行。如果任意的输
出,在显示字元时将会发生闪烁的现象。如果你使用 Soft-ICE 时萤幕会有闪烁

的现象,你应该把 FLICK 设为 ON。

有些 EGA 卡上你离开 Soft-ICE 时颜色可能没有还原的很正确,这是模拟的
EGA 显示的问题。3DA 埠是个有两个功能的显示埠。第一种是一些老旧的 CGA 软

体靠 3DA 来做 hsync 和 vsync,这样可以避免在一些老旧的 CGA 控制卡上造成

闪烁的现象。第二个功能则是用来重新设定 EGA 卡的调色盘。Soft-ICE 有个演

算法可以不用一直监控这个埠,一直监控会减慢一些认为自己在 CGA 卡上执行的

老旧程式之速度。但是在某些状况下,这套演算法可能无法使用。如果你是在 EGA

上使用 Soft-ICE 而且发现颜色并没有正确的还原的话,把 FLICK 设为 ON,这

样 Soft-ICE 会监控 3DA 埠而解决这个问题。

当 FLICK 设为 ON 时,萤幕更新的速度会变慢。

如果没有指定参数则会显示目前 FLICK 的状态。

FLICK 的内定值是 OFF。

〔例〕 FLICK ON
这道指令会把 FLICK 模式设为 ON。Soft-ICE 会等水平、垂直扫描完成後
再输出字元。

WATCHV --- 设定监控显示模式

语法: WATCHV [ON | OFF]

解说:

WATCHV 指令让你指定 Soft-ICE 要如何监控显示埠。通常 Soft-ICE 只有在
执行 INT 10 切换到非文字模式後才监控显示埠。但是有些程式不用 INT 10 来

切换显示模式,这种状况下,如果 WATCHV 设为 OFF,则 Soft-ICE 在储存或还

原萤幕时可能会发生问题。把 WATCHV 设为 ON 则会让 Soft-ICE 随时监控显示

埠。

如果你发现 Soft-ICE 并未正确的处理你的萤幕,或不能正确的还原游标的
位置,把 WATCHV 设为 ON。把 WATCHV 设为 ON 可能会影响目前显示模式的效率



如果没有指定参数则会显示目前 WATCHV 的状态。

WATCHV 的内定值是 OFF。

〔例〕 WATCHV ON
这道指令会把 WATCHV 设为 ON。

RS --- 显示程式萤幕

语法: RS


解说:

RS 指令让你暂时还原程式萤幕,Soft-ICE 视窗将消失直到你按任一键为止


这个功能在对经常更新萤幕的程式做除错时很有用。当 Soft-ICE 叫出来时
会回到文字模式,使用 RS 指令可以暂时回到绘图模式萤幕。

〔例〕 RS

CLS --- 清除视窗

语法: CLS

解说:

CLS 指令会清除 Soft-ICE 的视窗,并把提示符号及游标移到视窗的左上角


〔例〕 CLS

ALTSCR --- 转换到替换萤幕

语法: ALTSCR [ON | OFF]

解说:

ALTSCR 指令允许你把萤幕的输出从原定萤幕重新导向到替换萤幕去。这个功
能在你对绘图模式程式除错时非常有用,这样你就不用在绘图模式和 Soft-ICE
间切换来切换去。

ALTSCR 要求系统连接两台显示器。替换萤幕必须处於文字模式,这是显示器
的内定模式。

WATCHV 的内定值是 OFF。

〔例〕 ALTSCR ON
这道指令会把萤幕的输出重新导向到替换显示器上。

WIN --- 改变 Soft-ICE 的视窗大小

语法: WIN [N | W] [start-row length [start-column]]

N --- 当指定 N 时,视窗会被设为较小的模式: 46 字元宽。

W --- 当指定 W 时,视窗会被设为整个萤幕的宽度。

start-row --- 0 到 17 的数字。指定视窗从哪一列开始。

length --- 8 到 25 的数字。指定视窗有几列。

start-column --- 在小视窗模式中指定视窗位置为从左边算过来第几行。
start-row 和 start-column 指定小视窗模式中视窗左上
角的位置。在大视窗模式中,start-column 会被忽略。

解说:

WIN 指令可以让你修改 Soft-ICE 视窗的宽度和高度。

如果没有指定参数,这个指令会在小视窗模式和大视窗模式中切换。

如果 WIN 指令只有加上 N 或 W 参数时,则视窗的宽度会变换成指定的大小
,但高度不变。

如果视窗的行数加上 start-row 大於 25,则视窗的 length 到萤幕底端为
止。

WIN 的内定值是小视窗模式。

〔例〕 WIN N 4 9 30
这个指令会把视窗设定为从第 4 列、第 30 行处开始显示,并且是 9 列
高、46 个字元宽。

〔例〕 WIN
这道指令会在大视窗和小视窗模式间切换。

〔例〕 WIN W 10 8
这个指令会把视窗设定为从第 10 列处开始显示,并且是 8 列高、整个萤
幕的宽度。

§ 5.10 符号及原始码指令

*** 对不起.... 不会用所以不会翻..... 期待其他高人的大作.... ***


Z 是叫出 Soft-ICE 的热键。

FKEY --- 显示、修改功能键

语法: FKEY [function-key-name string]

function-key-name --- F1, F2...... F12

string --- string 包含任何 Soft-ICE 的指令和特殊字元:^ 及 ;。^ 是
用来让指令不显示出来,; 则Hacker.AIX/00000024/00000006.htm 100644
023417 000143 00000010644 06446674335 015467 0 ustar 00bbsroot
bbs 000000 000000

S-ICE 指令说明

--------------------------------------------------------------------
/TRA 0000k ; 设定追踪缓冲区之大小、最小10K...
/SYM 0000k ; 设定载入语法档之缓冲区大小.........
/S ; 如其延伸记忆体不够才加此参数.......
--------------------------------------------------------------------
BOUNDS [ON | Off ] ;
BOUNDS ON ; 打开核对保护模式中断之指令.........
BOUNDS OFF ; 关掉核对保护模式中断之指令.........
--------------------------------------------------------------------
R 32 ; 在S-ICE视窗内分解32位元之指令......
--------------------------------------------------------------------
SHOW [B | Start] [L Length]; 增强Demp的功能可指定开始长度列印PRN
B - ; 设定节段位址及节内位址至缓冲区.....
Start - ; 指定开始的节段位址起点.............
Length - ; 指定结束的节段位址终点.............
--------------------------------------------------------------------
FILE [file-name |*] ; 指令语法档案以供参考组合码.........
--------------------------------------------------------------------
TABS [2 | 4 | 8] ; 指令原始档案的控制扩充长度.........
--------------------------------------------------------------------
PRN COM1 ; 指令PRN至正确的通讯埠..............
--------------------------------------------------------------------
Colors = " 4FH,4EH,7EH, 2FH,0EH,70H, 1EH,1FH,5FH, 30H,3CH,3EH"
Colors = " 暂存器颜色, 资料区颜色, 程式码颜色, 指令颜色 "
; 指令 SOFT-ICE 的视窗的颜色以16进位.
--------------------------------------------------------------------
新特性 ---> 由除错程式及常驻程式设定一个中断点、硬体模拟...........

Mov Ah,09h
Mov AL,所须交给之函数(副程式)
Mov SI,'FG' ( 4647h )
Mov DI,'JM' ( 4A4Dh )
Int 03h

其 SOFT-ICE 副函数如下:

AL 副函数数值说明
10h 显示 SOFT-ICE 的重要资料至指定位址
11H 执行一个 SOFT-ICE 的指令
12H 得到一个硬体中断点的位址
13H 设定一个硬体中断点的位址
14H 清除一个硬体中断点的位址

其 SOFT-ICE 副函数定义如下:

10h 显示 SOFT-ICE 的重要资料至指定位址
引用 DS:DX 作其索引位址.....
字串索引最大可以一百个字元(0Dh)...

11H 执行一个 SOFT-ICE 的指令
引用 DS:DX 作其索引指令.....

12H 得到一个硬体中断点的位址
返回值暂存器数值定义如下:
DH - 传回最後中断的向量而成过去
DL - 传回最後硬体中断的类型而成过去

BH - 传回最後中断的向量
BL - 传回最後硬体中断的类型
传回类型如下:
1 - I/O
2 - INT
3 - BPX (int 3 style BP)
4 - 保留的
5 - 定范图

13H 设定一个硬体中断点的位址
返回值暂存器数值定义如下:
AX - 传回设定错误码
BX - 传回设定中断码
14H 清除一个硬体中断点的位址
输入:BX = 硬体中断号码
返回:BX = ???? 

 
目录: 本手册的功能 读者对象 本手册的组织结构 排版风格 如何使用本手册 其它相关文件 (外国人就是罗嗦,为了求全,只好随他了。) 第一章 欢迎使用SoftICE 产品概况 介绍SoftICE 介绍Symbol Loader 如何得到客户服务 联系NuMega公司的技术支持中心 第二章 安装SoftICE 介绍 硬件和软件要求 SoftICE显示选择 安装之前 安装 安装之后 配置BOOT。INI以便在多处理器系统中支持单CPU 配置SoftICE在Windows 95下正确载入 通过串行口连接第二台计算机 解决显卡问题 第三章 SoftICE教程 介绍 载入SoftICE 构造GDIDEMO样本程序 装入GDIDEMO样本程序 控制SoftICE屏幕 通过源码跟踪和逐步调试 读本地数据 设定断点和目标断点 设定一个断点 设定STICKY断点 (此处不知STICKY作何解释。待我读到此处时大概会明白) 使用SoftICE命令行信息 使用符号和符号表 设定条件断点 设置BPX断点 编辑断点 设定读写内存断点 第四章 将代码装入SoftICE 调试的概念 准备调试程序 准备调试设备驱动程序和VxDs(虚拟设备驱动程序) 手工装入SoftICE 装入SoftICE for Windows 95 装入SoftICE for Windows NT 构造带有调试信息的程序 使用Symbol Loader转换和载入文件 修改模块设定 修改通用设定 修改编译设定 修改调试设定 指定程序的源文件 删除符号表 在DOS命令行里使用Symbol Loader 使用Symbol Loader的命令行工具 NMSYM命令行的语法 使用NMSYM来转换符号信息 使用NMSYM来装入模块和符号信息 使用NMSYM来装入或导出符号表 使用NMSYM卸载符号信息 使用NMSYM来保存历史记录 关于NMSYM的信息 第五章 SoftICE导航 介绍 呼出SoftICE窗口 启动时禁用SoftICE 使用SoftICE窗口 调整窗口大小 控制窗口 拷贝和粘贴数据 用鼠标输入命令 得到帮助 使用命令窗口 滚动窗口 键入命令 重呼命令 使用运行时宏 将命令窗口的历史缓存保存到文件 相关命令 控制代码窗口 读信息 在代码窗口键入命令 使用本地窗口 控制本地窗口 扩展和分解堆栈 相关命令 使用观察窗口 控制观察窗口 设定观察表达式 读信息 扩展和分解类型表达式 相关命令 使用寄存器窗口 控制寄存器窗口 读信息 编辑寄存器和标志位 相关命令 使用数据窗口 控制数据窗口 读信息 改变内存地址和格式 编辑内存 辅助表达式 相关命令 第六章 使用SoftICE 在跟踪错误时调试多个程序 跟踪错误 Ring-3 32位保护模式(Win32程序) Ring-0 驱动代码(内核模式设备驱动程序) Ring-3 16位保护模式(16位Win程序) 地址内容 使用INT 0x41 .DOT命令 理解从R-3到R-0的转变 第使用断点 第八章 ----------------------------------------------------------- (...很累人那!今天就这些了吧.因为我也是读一些翻译一些,所以有些"向前引用 "的名词术语不知道要如何解释其意义.应该读完再翻译比较好...不过那个时候我 又开学了...呜...一点时间也没有了!)使用断点 介绍 SoftICE所支持的断点类型 断点选项 执行断点 内存断点 中断断点 I/O断点 窗口消息断点 理解断点的含义 虚断点 设置断点活动 条件断点 条件断点计数功能 在条件表达式中使用本地变量 在条件断点里引用堆栈 参考 多重断点 所用时间 断点统计 在表达式中引用断点 维护断点 使用内嵌断点 第八章 使用表达式 表达式 操作符 操作符优先级 形成表达式 表达式类型 定制类型 取得符号的数值 间接使用符号 第九章 装入系统组件符号 装入由DLL和EXE文件导出的符号表 使用未命名的入口点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值