SOFTICE使用说明.doc_第1页
SOFTICE使用说明.doc_第2页
SOFTICE使用说明.doc_第3页
SOFTICE使用说明.doc_第4页
SOFTICE使用说明.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SOFTICE 使用说明 介绍J 1.1 本理式的功能1.2 使用于册1.3 系统需求1.1 本理式的功能Soft-ICE 是 个软体除错工具。可是它拥有相当於硬体侦错器 (hardware-level) 的能力,使 它能凌驾於 DOS般的除错程式之上。Soft-ICE 使用 386 的虚拟 86 模式 (virtual 86 mode) 将 DOS 所有理式摆在 个虚拟机器 (Virtual Machine) 上,使得 Soft-ICE 可以完全控制 DOS 的环境。Soft-ICE 使用 80386 保护模式的特色,像是 paglng、I/O privilege level 和 break point register,t日硬体侦错器中断指示著 你存在的DOS 除错程式.我们设计 Soft-ICE 时有三个目标1利用这 80386 实际上的机器潜在能力去侦错未来的东东那个是不可能的或以缓慢仅 软体的除错程式是禁止的.即时的硬体侦错器中断点,记忆体保护,中断跳出程式,等等.2 和现有贞错器的使用方式相容。我们想要提供个工具 它的使用方式和现有侦错器的 使用方式相同,可是它却拥有硬体除错器的能力。如此使用者就可以省去不必要学习的时间, 而得到有力的工具。3 是 个拥有友善使用者介面 (user-friendly) 的理式。由於 Soft-ICE 的视窗可以自由移动,和变换大小,所以即使些资讯被档在视窗底下,只要经过移动和变换大小,也可以 被使用者看到,另外动态的线上辅助功能,使得你偶而才用次 Soft-ICE 也不会感到圆 扰.Soft-ICE 的特色:*可设定某记忆体在读/写时、I!O 埠在读/写时、到达某块记忆体范围,或是某插断 发生时,立即中断回到 Soft-ICE。*反向追踪程式。*原始程式的侦错。*可以和其它贞错器同时贞错程式。*完全支援 EMM 4.0 (expand memory manager) 。*如果是单色萤幕,则可以自动将 Soft-ICE 放在 640 KB 主记忆体以外的空间。*本理式可在任何时刻呼叫出来。*即使键盘插断被改,本理式还是可以呼叫出来。*本fE式实际是放在另一虚拟机器上,这麽做是为了怕其它程式刻意的更改或摧毁 Soft-ICE的理式码。所以即使 DOS 当掉了,Soft-ICE 能仍正常的工作。(注1.)*如果你的电脑拥有超过 640 阻的记忆体,则 Soft-1CE 将不会占用低於 640 KB 的传统 记忆体。*亲合力极强的动态线上帮助。*本理式像是 个真正独立於电脑外的硬体侦错器。这代表你可以侦错任何个设备驱动程 式(.sys) ,这是传统的除错程式所不及的。*甚至可以对 DOS 不相容或可以自我开机的理式除错。*安装相当简单。 你根本不用调任何个 DIP 开关,而且本理式也不会占用任何个I!O埠,更不会跟任何块记忆体相冲。附注:Soft-1CE 是使用真实的位址 (segment: offset) 来定址,而不是使用 286 和 386 的定址方式 来定址。1.2 使用于册 Soft-1CE 的手册有四个主要部份 (第一节)学习如何使用 Soft-1CE(第二节)各种命令的说明 (第三节)所支援的特性 (第四节)进阶的主题第一节讨论使用本理式侦错时最常遇到的问题。在本节中我们也安插了一个小实验。 学习Soft-1CE ,和个小的实验,Soft-1CE据有亲和力的线上辅助能被使用於参考命令叙述与语法.这学习 Soft-1CE部分包含安装指示,一个使用者介面的叙述与教导.这教导被设计把你自身执行的更快速.命令部分叙述所有这 Soft-1CE 命令.这命令叙述被方程式群团结成组织以个alphabetic索引备考.支援赋与著特点部分盖先进的装载选择,象徽的与来源同水准除错,与 EMM 4. 0可能性. 先进的主题部分主题,诸如:使用 Soft-1CE 以 DOS loadable 驱动器与使用Soft-1CE 在非Dos作业系统.遍及在这手册,在这些教导和这些命令部分,当你读这些指定的资料像是己给你那些你需要 的 Soft-1CE 资料.4ENTER个键,如下这键,你将按下这键标示.当这说明告诉你去ENT四 个片语,诸如: W1N ,你将键入这指定的字元,然後按ENTER键.1.3系统需求Soft-1CE 工作在 IBM系列Model 70与80 Compaq 80386与 80386SX 电脑, AT 级相容品与80386 微处理器.假如他们是AT相容品 Soft-ICE 将只工作在 80386 XT 微处理器 Soft-ICE 工作最好在延 伸记忆体,但以传统的记忆系统工作也好.Soft-ICE ,为它的影像输出和 keystroke输入不使用 DOS或 ROMBIOS.所以影像以下列的模式必定会相容的:MDA, Hercu1es, CGA,EGA,or VGASoft-ICE 同时也有支援双萤幕结构,当除错videointensive程式可能是有帮助的.注 1 .PS. (这就是 VM86 mode 的优先权多工,利害之处)第二章介绍2. 1 磁片内容2. 2 载入 Soft-ICE2. 2. 1 无 Extended Memory 时的载入方法2.2.2 有 Extended Memory 时的载入方法2.2.3 如何调整 Soft-ICE 使能依您的设定启动2. 3 脱离 Soft-ICE2. 4 重新载入 Soft-ICE2. 1 磁片内容Soft-ICE 原本装在片5又1/4英口或片3又1/2英口的磁片中。当您执行S-ICE时,S-ICE注册所有人的大名将会被显示於萤幕上,以制止著作权被侵害。 S ICE磁片本身为了fg方便起见,并未实际做防拷措施。同样,为了我们的便利,我们感激您对 我们的许可协约有著高度的尊敬。为免原版磁片损毁而制作份备份程式乃非常重要的件 事。Soft-Ice磁片的目录中应当含有下列档案S-ICE.EXE S-ICE.DAT LDR.EXE MSYM.EXE EMMSETUP.EXE UPTIME. EXE README.SI SAMPLE.EXE SAMPLE.ASM SAMPLE.SYMS-ICE.EXE 为 Soft-ICE 主理式。S-ICE.DAT 为 Soft-ICE 启始参数设定档。LDR.EXE 为 Soft-ICE 主理式及符号档 (symbo1 fi1e) 的载入程式。MSYM.EXE 为 Soft-ICE 符号档的产生理式。EMMSETUP.EXE 为供使用者自定扩展记忆体 (expanded memory) 使用方式的理式。UPTIME. EXE 为修正时间调拯的理式。README.SI 为 文字档,其中包含有Soft-ICE使用于册未提及的事工页。 SAMPLE.EXE 为使用者指南中所使用的个示范 (DEMO) 程式。 SAMPLE.ASM 为 SAMPLE.EXE 的组合语言原始程式。SAMPLE.SYM 为 SAMPLE.EXE 的符号档。2. 2 载入Soft-ICE在执行Soft-Ice之前,先将磁片中所有的档案拷贝至硬碟机中。 这些档案应当放置於您的档案路径所能存取到的目录中。 S-ICE.EXE 能以DEVICE DRIVER的 形式载入抑或以般理式於DOS 命令行下执行。如果想要使用Soft-Ice的特点的话,则SICE.EXE必须在NFIG.SYS中以DEVICE DRIVER 的方 式载入。注解:如果您没有extended memory的话,则Soft-ICE 无法以device driver的形式载入。 也就是说您必须在DOS prompt下载入它。2. 2. 1 无 Extended Memory 的载入方法当您没有extended memory时,Soft-ice将尽量将自己本身载入到记忆体最高位置。 而被Soft-ice所使用的记忆体将会被排除在外 (map out) 。因此DOS记忆体的可视范围将比载 入前为少,建议您在其他任何常驻程式前载入 S-ICE。 如果您没有 extended memory,只要键入:S-ICE2.2.2 使用 Extended Memory 来载入的方法 以Extended Memory来载入S-ICE可以下列两种方法达成-1在 NFIG,SYS,中将S-ICE.EXE以driver的形式载入:如果您将使用下列的功能,则必须是此种方法。*与经由ROM BIOS CALLS来存取记忆体的理式,共享记忆体。(如 VDISK,SYS,RAMDRIVE. SYS,HIMEM. SYS,cache programs,等等).*使用Soft-ICE EMM 4,0 相容能力。*使用Soft-ICE 作为符号或原始程式阶段的除错。*使用back trace ranges.*与其它Nu-Mega 的产品如MagicCV,共同使用S-ICE。当以DRIVER形式载入时,Soft-Ice将配置部份的Evtended memory以作为自己本身及其附属 程式使用,因此不会有记忆体冲突发生。S-ICE.EXE必须在其它会配置Extended memory的理 式之前载入。(例如:VDISK. SYS,RAMDRIVE.SYS) 。通常如果Soft-Ice在CONFIG.SYS中第个载 入时,能得到最好的效果。对於那些新进使用Soft-Ice的使用者而言,在CONFIG.SYS中以下列叙述来将 Soft-Ice当作第 个载入的理式是很明智的device 二 drive: pathS-ICE.EXE /SYM 50Drive 及 path 须指派为S-ICE.EXE 所在的目录该项叙述会在系统重置後将Soft-Ice载入, 适合作为入门指引。无论如何,Soft-ICE将不会载入更为强大的功能(如EMM 4.0) 。在18使用 有 些心得後,您可以重新调整Soft-Ice来使用诸如此类的功能。如果您已熟悉Soft-Ice或 想要立即调整设定以使用其功能的话,请参阅第六章 (Soft-ICE 初始设定选项)。第三章 30分钟内学会 DEBUGS 3. 1 序言Soft-ICE 的所有动作部发生在一个可以随时叫出的视窗中。Soft-ICE 的所有指令部可以显 示在一个小视窗中,但这个视窗可以扩大到整个萤幕。当你把 Soft- ICE 当做其它除错程式 的助于使用时,你可能会使用小视窗。当你把 Soft-ICE 当独立除错器用时,你可能会使用 大视窗。如果你使用原来磁片上的设定档( S-ICE. DAT ) ,那视窗一开始是占满整个萤幕的。S 3.2日叫出视窗载入 Soft-ICE 後,你可以随时叫出视窗。开始你只要按 Ctrl - D 即可叫出 Soft-ICE。使用 ALTKEY 的指令可以更改此热键。(参阅 S 5.8 )S 3.3 由视窗中返回使用 X 这个指令或你叫出 Soft-ICE 的热键均可以回到原先的画面。你在Soft-ICE 中设定 的所有中断点此时开始启动。S 3. 4 改变视窗大小你可以改变 Soft-ICE 视窗的宽度和高度。在独立模式中显示理式码时,改变视窗大小的功 能特别有用。视窗的高度为 8 到 25 行。按A 1 t 使视窗变高A 1 t 使视窗变短使用 WIN 的指令以改变视窗的宽度。(参阅 S 5.9)直接输入 WIN 而不加参数会在下面两种模式中切换:WIDE 模式 占满整个萤幕NARROW 模式 46 个字元宽有些指令像 D 、E 、R 、U ,使用 WIDE 模式以显示更多讯息时较为方便。S 3. 5 移动视窗Soft-ICE 的视窗是可以移动且可以定位在萤幕上的任何地方。这功能在 NARROW模式下特别 有用。在你需要时移动视窗以便观看萤幕上被视窗挡到的地方。你可以用下列按键控制萤幕 的移动:C t r 1 向上移行 C t r 1 一 向下移一行 C t r 1 一向右移一列C t r 1 一向左移一列S 3.6 行编辑按键Soft-ICE 容易使用的行编辑器让你可以叫回并编辑上个指令。它的功能类似 那些有名的 CED 行编辑器。以下按键可以帮助你在命令窗中编辑指令: 游标右移游标左移Ins 切换插入模式De1消除现在字元Home把游标移到行的开头End把游标移到行的结尾 显示上个指令 显示下个指令Shift 显示向上卷行 Shift 显示向下卷行 Page Up显示向上卷页 Page Down显示向下卷页 BackSpace消除前个字元 Esc 取消目前命令当游标在资料窗或理式码窗时,另有特殊的按键,这在後面将会讨论到。S 3. 7 动作状态行 在萤幕底部的状态行提供指令语法的辅助。S 3.8 指令语法Soft-ICE 是个由指令操控的除错工具。要令 Soft-ICE 有动作,你要下指令给 它。指令可以因不同参数而有改变。所有的指令都是 1 到 6 个字元的字串且不分大小写。所有的参数都是字串或 运算式。运算式是典型的数字,也可以是数字和运算子的结合。所有的数字均以 16 进 位表示。 个位元组 (byte) 参数有 2 位,字组 (word) 参数有 4 位。双字组 (doub1e word) 是两个白: 分隔的字组参数。以下是些参数的例子:12位元组参数10FF 字组参数EOOO:0100双字组参数暂存器在运算式中可以拿来当位元组或字组参数用。例如:U CS:IP -10 的指 令会从现在指令指标所指位址向前 10 byte 开始反组译。以下的暂存器名称可以用 在运算式中:AL 、址f 、AX 、BL 、BH 、BX 、CL 、CH 、CX 、DL 、DH 、DX 、DI SI 、BP 、SP 、IP 、CS 、DS 、ES 、SS 、FLS 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假如你目前正在第个中断程序,下这个指令会在堆叠的 返回位址设个暂时中断点并跳过此中断程序。S 3. 9 功能键功能键可以代替串 Soft-ICE 中之指令。功能键可以自命令行设定或从S-ICE.DAT 中定义。Soft-ICE 磁片上原来的 S-ICE.DAT 已经对 12 个功能键有设定。你可以在任 何时候改变任何 个设定。个键定义如下表所示。这样设计是为了方便微软的 CodeView 的使用者。F1 显示般辅助画面( H; )F2在暂存器窗中切换(WR; )F3 改变目前原始码的模式(飞RC; )F4 回复视窗( RS; )F5 回到原理式(X; )F6 在命令窗中和理式码窗中切换(EC; ) F7 执行到游标所在那行( HERE; )F8单步执行(T; )F9在游标所在那行设中断点(BPX; )F10 单步执行(干; )Fll 执行到返回位址(飞 SS:SP; )F12显示 Soft-ICE 的版别( VER; )指令前的会让这个指令不显示出来。指令後的!则代表按下 Enter 。输入FK凹的指令可以显示目前功能键所代表的意义。要使用功能键直接按下功能键即可,不需再键入指令。要自定功能键,参阅 S5. 8 FKEY 指令的解说或第六章有关 在 S-ICE.DAT 设定功能键的部份。S 3. 1 0 辅助 利用辅助的指令可以得到有关指令的简单解说、语法和使用例子。要得到辅助的资讯,键入:。或 H 显示所有指令和运算子的简短解说。指令或 H 指令 显示关於指令语法和例子更详细的资讯。运算式或 H 运算式 把运算式的结果以 16 、10 进位及 ASCII 码 显示出来S 3.1 1 课程(好多喔.偷懒下,跳过去吧! )寸|第二节指令|L第二节包括每个指令的语法、解释及范例。所有的数字均以 16 进位表示。使 用到+ - * /或暂存器的数字均可视为运算式。所有的指令部不区分大小写。指令 语法叙述中的斜体字需以真实的值代替而不是打入斜体字。以下是本节中所使用的代号: J语法中非必用的部份可选用的部份XIY使用 X 或 y (X y 择使用)count - count 指定中断点条件要成立几次才会真正引发中断。如果没 有设定,内定值是 1 。每次引发中断而叫出 Soft-ICE 的视窗 後,记数器自动回复为原先指定值。verb 指定在什麽状况下中断点会做用。R 代表读取; W 代表写入:RW 代表读取及写入; X 代表执行。address位址。由两个 16 位元之字组以冒号分隔而组成。第个字组 代表区段位址,第二个字组代表差距位址。位址可以自符号或 暂存器构成,也可以包括$、 、等特殊符号。参阅S 3. 8 以取得更多资讯。break-number中断点号码是在你修改中断点(即编辑、删除、重新启动、暂停作用)时使用的。它是用来代表各中断点的代码。 中断点号码是由 0 到 F 。list一串由逗号或空白分隔的中断点号码。mask由 1 、0 、X 所构成的位元遮罩。X 代表不处理的位元。 例如: BPIO 21W EQ M 1XXX XXXX如果 21 埠被写入且造成其高位元被设定则会引发中断。第四章如何使用中断点指令S 4.1 序言Soft-ICE 具有以往只有硬体除错器才具有的中断点能力。因为 80386 晶片的 威力和弹性,使我们不需要额外的硬体设备就能有更强大的中断点能力。中断点的触发可以自记忆体某位址的读取、记忆体范围的读取、理式的执行及 埠的存取来达成。Soft-ICE 赋与每个中断点个位的 16 进位号码( 0 - F )。这个中断点号码是当你对中断点做删除、中止、启动、编辑等动作时使用。Soft-ICE 的所有中断点都是 sticky 。这个意思是这些中断点在启动後不会 自动消失。你必需以 BC 或 BD 指令来消除或关闭它。Soft-ICE 次可以处理 16 个中断点。同种形态的中断点最多可以有 10 个。但记忆体位址的中断点( BPM ) 因 80386 处理器之暂存器的缘故,最多只能设 4 个。中断点可以设个计数参数。计数参数是中断点真正触发作用前被忽略的次数。S4. 2 设置中断点 指令:BPM BP阳 BPMW BPMD 在记忆体位址被存取或执行时引发中断BPR对记忆体范围设置中断点 BPIO 对I!O 埠存取时触发中断 BPINT呼叫插断时触发中断BPX设置/清除执行中断点 CSIP - CS: IP 范围的检定判断 BPAND等待复合中断点的发生BPM BP阳 BPMW BPMD 在记忆体位址被存取或执行时引发中断 语法: BPM sizel address verbl qua1i日er va1uel C二countlsizeB 、W 、DB - byte 位元组 W - word 字组 D - Doub1e word 双字组Slze 是指中断点所涵盖的范围。举例来说,如果使用的是双字组,而其第三个位元组被改变了,就会引发中断。如果有指定判断资格 (qua1ifier) , size 也是很重要的。verb - R 、W 、RW 或 Xquali 日er - EQ 、NE 、GT 、LT 、M EQ相等 NE不等 GT大於口小於 M遮罩quali 日er 只有在读写中断点才有用到。va1ue 由中断点大小决定是位元组、字组或双字组的值解说:BPM 指令会在记忆体读、写或执行时引发中断。verb 内定值为 RW;size 内定值为 byte 0除了 X 外的 verb 值会使程式执行引发中断的那段程式码。CS:IP 所指的是 引发中断的後 行程式码。如果 verb 值是 X , CS: IP 所指的是中断点设置的位 置。如果设定的是 R ,当记忆体位址被读取或做没有改变的写入时,将引发中断。 如果设定的是 R 、W 、RW 时,指定的位址被执行时并不会引发中断。 (注)如果使用 BP酬,指定的位址必需由字组边界开始。如果使用 BPMD ,指定的位址必需指向个双字组边界。(例) BPM 1234:S1 W EQ 10 C二3这道指令设定 个位元组的记忆体存取中断点。当 10H 第三次写入 1234:S1时将启动中断点。(例) BPM CS:1235 X这道指令设定 个执行中断点。当 CS:1235 的理式码被执行时将引发中断。此时 CS:IP 所指的就是中断点设定位址。(例) BPMW DS:FOO W EQ M OXXX XXXX XXXX XXX1 这道指令设定个字组的记忆体写入中断点。当 DS:FOO 被写入个高位 元为 o ,低位元为 1 (其它位元不考虑)的资料时,将引发中断。(例) BPM DS:1000 W GT 5 这道指令设定个位元组的记忆体写入中断点。当 DS:1000 被写入个大 於 5 的值时,将引发中断。BPR对记忆体范围设置中断点语法: BPR start-adderss end-address verbl C二 countl start-address 、end-address界定范围的开始及结束位址 verb - R 、W 、RW 、T 或 TW解说:BPM 指令让你对 段记忆体范围设中断点。除了 T 和 TW 外的 verb 值均会执行引发中断的理式码。CS:IP 将指向引发 中断的下段程式码。你不能设定执行的范围中断点。如果想做到执行的范围中断点必需使用 R 。 程式码的引出被视为是对范围中断点的读取。如果未指定 verb ,内定值是 W 。在某些状况下,设置范围中断点会降低系统的性能。Soft-ICE 将会分析所有 对包括范围中断点的 4K 记忆体的读写动作。性能的降低通常无法察觉,但也可 能有严重降低的例外。verb 值使用 T 或 TW 将在指定范围内可以做回溯追踪 (back trace) 。它 们并不会真正引发中断而只是记录下程式码的资料。这个资料可以用 SHOW 或 TRACE 指令显示出来。参阅第九章以取得更多有关回溯追踪的资讯。(例) BPR BOOO:O BOOO:1000 W这道指令定义 个记忆体范围的中断点。任何对单色影像记忆体的写入均 会引发中断。BPIO对I!O 埠存取时触发中断语法: BPIO port verbl qua1i日er va1uel C二 countl port 个位元组或字组形态的值verb - R 、W 或 RW 0R - read ( IN ) W盯i te ( OUT )quali 日er - EQ 、NE 、GT 、LT 、M EQ相等 NE 不等 GT大於 口 小於 M遮罩va1ue 个位元组或字组形态的值 解说:BPIO 指令会在I!O 埠读写时引发中断。如果有指定 va1ue 值,它将被拿来和引发中断的 IN 、OUT 程式码所读/写 的真正资料值做比较。va1ue 可以是 个位元组或字组。如果是对个位元组的 埠做I!O ,则是使用较低的 8 位元来做比较。CS:IP 将会指向引发中断之程式码的後段程式码。 如未指定 verb ,内定值是 RW 。(例) BPIO 21 W NE FF这道指令定义个I!O 埠存取中断点。如果号中断控制器的遮罩暂存器被写入除了 FFh 之外的值,将会引发中断。(例) BPIO 3FE R EQ M 11XX XXXX这道指令定义个位元组的I!O 埠读取中断点。如果 3FEh I!O 埠被读取,且这个值的二高位元是 1 时,将会引发中断。其它位元可以是任意值。BPINT呼叫插断时触发中断语法: BPINT INT-NUMBER 二 va1uel C二countl int-number白。到 FFh 的插断号码va1ue 个位元组或字组的值解说:BPINT 指令可以在呼叫硬体插断或软体插断时引发中断。藉由指定 AX 暂存 器之值可以轻易分离指定的 DOS 或 BIOS 呼叫。如果没有指定 va1ue 值,在呼叫指定的插断向量时将引发中断。这个插断可 以是硬体插断、软体插断或内部插断。选定的 va1ue 值当插断发生时将和指定的暂存器比较(剧、AL 或 AX)如果其值和指定的暂存器值相同时,将引发中断。中断点引发时,如果是硬体插断,CS:IP 将指向此插断程序的第 段程式码。使用 INT? 指令可以得知此插断呼叫发生时执行到哪里。如果是软体插断,则CS:IP 将指向呼叫此插断的理式码。(例) BPINT 21 址f二4C这道指令定义个 21h 插断的中断点。当 DOS 4Ch 函式(结束程式)被呼叫时将引发中断。BPX 设置/清除执行中断点 语法: BPX addressl C二 countl 解说:BPX 指令让你在原始程式中设置/清除执行中断点。如果游标在程式码窗中,则不需要输入位址,执行中断点将设置在目前游标所在位址。如果目前游标所在位址已经设置 个执行中断点,则将清除此中断点。如果程式码窗是不可见的或游标未在其中,则必!指定位址。如果只有指定差 距位址,目前的 CS 值会被当做节段位址。(注)除非中断点的位置在 ROM 中,不然 BPX 均使用 INT 3 的方式设置中断点。用这样来取代中断点暂存器是为了能设置更多的中断点。如果你的处境因某些原因必需使用中断点暂存器(例如说程式码未载入) ,你可以用BPM 指令设置执行中断点。(例) BPX. 1234这道指令将在原始程式第 1234 行设置中断点。CSIP - CS:IP 范围的检定判断语法: CSIP OFF I NOTl start-address end-addresslNOT 如果使用 NOT ,只有当 CS:IP 所指超出范围,才会引发中断。OFF停止对 CS:IP 的检定。 解说:CSIP 指令会使中断点的成立条件由指令指标所指位址而定。这个功能在你怀 疑程式会突然修改其范围之外的理式码时特别有用。当中断点条件成立时,CS:IP 暂存器会被拿来和指定的范围做比较。当其在 范围内时会引发中断。要在 CS:IP 指在范围外时引发中断,则需要用 NOT 参数。如果没有加参数则会显示目前 CSIP 的范围。(例) CSIP NOT FOOO:O FFFF:O这个指令只有在中断点条件成立且 CS:IP 并未指向 ROM BIOS 时才会引发中断。BPAND等待复合中断点的发生 语法: BPAND list I * I OFFlist串由逗号或空白分开的中断点号码。*复合所有的中断点。 解说:BPAND 指令会对二或多个中断点做逻辑的 AND 运算。只有当所有的中断点条 件均成立时才会真正引发中断。有些情况下你会希望在许多不同条件均成立下才引发中断。BPAND 指令让你 指定二或多个在中断发生前必需成立的中断点。这个功能让你可以设置更复杂的 中断点条件。每次使用 BPAND 指令均会把指定的中断点号码加入名单中,直到使用BPAND OFF 指令为止。你可以用 BL 指令列出中断点以察看哪些中断点号码被复合在起。被复合 在起的中断点其中断点号码後会有个&。旦中断点被复合後,除非此中断点被清除或 BPAND 被关闭才会中止。(例) BPAND 0,2,3这道指令将复合 0 号、2 号、3 号中断点。只有当三个的条件均成立时才 会引发中断。例如:如果 2 号和 3 号的条件均成立次以上,但 0 号的条 件尚未成立,则只有当 0 号的条件成立时才会引发中断。S4.3 处理中断点Soft-ICE 提供许多指令来处理中断点。处理类的指令可以用来列出、修改、加l 除、启动和中止中断点。中断点是以自 Oh 到 Fh 的中断点号码来识别的。处理中 断点的指令有:BD 中止中断点 BE 启动中断点 BL 列出中断点 BPE 编辑中断点BPT把中断点当样板BC 清除中断点 BD 中止中断点 语法: BD list I *list串由逗号或空白分开的中断点号码。*中止所有中断点。 解说:BD 指令是用来暂时中止中断点的活动的。中断点可用 BE 指令(启动中断点)重新启动。你可以用 BL 指令列出中断点以察看哪些中断点被中止了。被中止的中断点 其中断点号码後会有个*。(例) BD 1,3这道指令会暂时中止 1 号和 3 号中断点。BE启动中断点语法: BE list I *list串由逗号或空白分开的中断点号码。*启动所有中断点。 解说:BE 指令是用来重新启动被 BD 指令中止的中断点。当中断点第次定义时将 会自动启动。(例) BE 3这道指令会启动 3 号中断点。BL列出中断点语法: BL解说:BL 指令会显示所有目前设定的中断点。BL 指令会列出每个中断点的中断点 号码、中断点条件、中断点状态和计数。中断点的状态分为启动和中止。中止的中断点其中断点号码後会有个*。在 BPAND 指令中使用到的启动的中断点其中断点号码後面会有个&。最後 个引发 中断的中断点会以高亮度显示。BL 指令没有参数。(例) BL这道指令会显示所有定义的中断点。以下列出个 4 个中断点的例子:。B) PMB 1234:0000 W EQ 0010 C二 031) BPR BOOO:OOOO BOOO:1000 W C 二012) BPIO 00021 W NE OOFF C二 013) BPINT 21 址f二4C C二 01BPE编辑中断点语法: BPE break-number解说:BPE 指令会把中断点的叙述放到编辑行以供修改。然後你可以用编辑键重新 编辑,按 Enter 重新输入。这个指令让你可以快速修改原有中断点的参数。(例) BPE 1这道指令会把 1 号中断点的叙述搬到编辑行并清除原 1 号中断点。按Enter 可以把这个中断点重新输入。BPT把中断点当样板 语法: BPT break-number 解说:BPT 指令会把己存在的中断点叙述拿来当新中断点的样板。原存在的中断点叙述会被放到编辑行去。中断点号码所指的中断点并没有任 何改变。这个指令让你可以快速的设置和原中断点相似的新中断点。(例) BPT 3这道指令会把 3 号中断点的样板放入编辑行。当你按下 Enter 後会增加个新中断点。BC清除中断语法: BC list I *list串由逗号或空白分开的中断点号码。*启动所有中断点。 解说:BC 指令是用来永远清除个或多个中断点的。(例) BC *这道指令会清除所有的中断点。第五章使用其它指令S 5.1 显示及编辑类指令 指令:U反组译或显示原理式码R显示或更改暂存器MAP显示系统记忆体分布图D用最後 次指定的形式显示记忆体DB以位元组的形式显示记忆体DW以字组的形式显示记忆体DD以双字组的形式显示记忆体E用最後一次指定的形式编辑记忆体EB以位元组的形式编辑记忆体EW以字组的形式编辑记忆体ED以双字组的形式编辑记忆体INT?显示最後一次呼叫的插断号码?或 H显示辅助讯息VER显示 Soft-ICE 的版本号码U反组译或显示原理式码语法: U addressl L 二1 lengthl length 要反组译的理式码长度 解说:U 这个指令会显示正在除错的理式的理式码。如果没有指定 length ,内定值是 8 行或萤幕长度减 。如果未指定 address ,这个指令会从最後 次反组译的後位元组开始反组 译。如果从未使用过反组 手指令,则从目前 CS:IP 开始。如果程式码窗是可见的,则程式码会显示在其中。 如果指定的位址范围的原始程式码有载入,由目前的原始码模式来决定是否rADCUb显eTL口ucu 示原始码。-、i、StADEvi(例)州弘口UeUVAU $-10nTL这道指令一从、hr 目前位址的前 10h 位元组开始反组译。aAAhmVAI499(例) u.e、这道指令会从 499-nDCU-TLTi行开始显示原始码。程式码窗必需是可见的且必需在原始码模式。为、下阻即R显示或更改暂存器ZM/ U、-xp任BS语法: R register-name 二J va1ue J、lvTiIrL口、lvlv口ucu、 mva1ue 如果 register-name 不是 FL , va1ue、是个 16 进位值或运算式。若 register-name 为 FL , va1ue 下列旗号符号DE或多个的组ILQU合。旗号符号可视需要在前面加上+或o - Overf1ow f1ag 溢位旗号D - Direcrion f1ag 方向旗号I - Interrupt f1ag 插断旗号S - Si gn f1ag 正负号旗号Z - Zero f1ag 零值旗号A - Auxi1iary carry f1ag 辅助进位旗号P - Parity f1ag 极性旗号C - Carry f1ag 进位旗号解说:R 指令是用来显示或更改暂存器之值的。 如果没有指定参数会显示所有暂存器和旗号的值及目前 CS:IP 的理式码。如果仅指定 register-name 而未加 value ,则 Soft-ICE 会显示指定暂存 器现在的值并提示你输入新值。如果 register-name 是 FL ,目前设置的旗号会 以高亮度大写显示:未设置的旗号则用普通小写显示。要维持现在暂存器的值, 直接按 Enter 。如果 register-name 和 va1ue 均有指定,则指定的暂存器的值将被改成va1ue想要改变旗号的值,把 FL 当 register-name ,後接你想切换的旗号符号。 如果要设置某旗号,在旗号符号前加上+。要关闭某旗号,则在旗号符号前加上个 。旗号可以按任何顺序排列。(例) R AH 5这道指令会把血暂存器的值改成 5(例) R FL 二 o Z P这道指令会切换 0 、Z 、P 旗号的值。(例) R FL这道指令会显示目前旗号的值并让你可以修改其值。(例) R FL 0 +A -C这道指令会切换。旗号,设置 A 旗号并关闭 C 旗号。MAP显示系统记忆体分布图 语法: MAP解说:MAP 指令显示各记忆体部份的名称、位置和大小。大小是以页来计算的。 页等於 10h byte 0CS:IP 所指的部份会以高亮度显示。 使用 MAP 指令的时机: 士中断点发生时指向未知的记忆体区段。士你想控制常驻程式或系统程式。你可以根据 MAP 指令所显示的开始位址 汉大小来设置范围中断点。士你怀疑程式或系统在其记忆体空间之外写码。MAP 指令可用来找出此区段 的记忆体位址以便在 CSIP 中使用。士你必需找出哪个常驻程式拥有目前的插断向量。(例) MAP以下是这道指令显示的范例:若 DOS 的版本低於 3. 1 ,将显示理式的位址而非其理式名称。D DB DW DD显示记忆体语法: D sizel addressl L 二1 1ength 1sizeBbyte Wword Ddoub1e word1ength要显示几位元组。 解说:D 这个指令会显示指定位址的记忆体内容。记忆体内容是以指定的 Slze 的形式显示。如果没有指定 Slze ,会以最後 次使用的 Slze 来显示。所有的形式均会显示 ASCII 码。如果未指定 address ,则由前 次显示的最後位元组的後位元组开始显刁。如果没有指定 1ength ,内定值是 8 行或因视窗较小而少些。 若资料窗是可见的,则资料会显示在资料窗且 1ength 会被忽略。(例) DW DS:OO L二8这道指令会以字组和 ASCII 的形式显示目前资料节段的前 8 位元组。E EB EW ED 以位元组的形式编辑记忆体 语法: E sizeJ address data-1istJsizeBbyte Wword Ddoub1e worddata-list串指定之 Slze 的资料, (位元组、字组或双字组)或以 逗号、空白分隔的加引号字串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论