第 一 章 序 言 §1.1 产品简介 Soft-ICE 是个为 PC-DOS 和 MS-DOS 程式除错者题供有硬体除错能力的除错工 具软体。 Soft-ICE 使用 80386 的保护模式在虚拟的机器上执行 DOS 。这使得 Soft-ICE 对 DOS 有完全的控制能力。Soft-ICE 使用像 paging 、I/O privilege level 及 break point registers 等 80386 保护模式下的功能来增加原本 DOS debug 的硬 体层次中断能力。 Soft-ICE 设计时有三个目标: 1.让 80386 的虚拟机器具有原本只以软体除错不可能完成或很花时间的除错 功能。(像:真实时间的硬体中断、记忆体保护、由当掉的程式中跳出。) 2.和现有的除错程式一起使用。我们想要提供一个能和现有的除错程式一起 使用的工具。你不必再去学习一种新的除错程式就能得到其强大的硬体除 错功能。 3.要完全一个对使用者具亲和力的程式。视窗可以马上被叫出使用而不会成 为阻碍。Soft-ICE 的所有指令被设计成可以放在小视窗中。如此一来,萤 幕上在 Soft-ICE 後面的讯息仍然可见。动态的线上辅助为偶尔使用 Soft- ICE 的人提供援助。 Soft-ICE 的功能: * 真实时间下对记忆体读写、埠的存取、记忆体范围及中断呼叫设中断点。 * back trace history ranges * 符号及原始程式层次的除错。 * 可和现有除错程式共用的环境。 * 完全支援 EMM 4.0 。 * backfilling to raise base memory past 640K for monochrome system * 随时可以叫出的视窗。 * 即使中断失效了仍然可以由键盘启动。 * 程式码被 80386 保护模式隔绝。这是为了防止 Soft-ICE 被其它程式修改 或破坏。即使 DOS 挂了,Soft-ICE 仍然可以工作。 * 如果系统有超过 640K 的记忆体,Soft-ICE 可以设定成完全不占主记忆体。 * 具亲和力的动态辅助。 * 可当作独立的除错程式来用。如果你想做对於像设备驱动程式、中断处理及 启动顺序等传统除错器无法完成的除错,这项功能是很有用的。另外,如果 你遇到 re-entrancy 的问题时,这项功能也是很有用的。 * 具有自我启动的能力,因此可以在非 DOS 系统或对可自我启动的程式进行 除错。 * 载入非常的容易。不用调 DIP ,不用设 I/O 埠,也不用怕记忆体位址的冲 突。 〔注〕Soft-ICE 只能处理真实模式下定址的程式。它不能处理使用 80286 或 80386 保护模式的程式。 §1.2 如何使用本手册 Soft-ICE 的使用手册分为下列四节: 第一节 --- 学习使用Soft-ICE 第二节 --- 指令 第三节 --- 提供的功能 第四节 --- 更进一步的主题 当读完第一节 "学习使用 Soft-ICE" 和一个小范例後,Soft-ICE 可以用来解决 大部份的除错问题。Soft-ICE 具亲和力的线上辅助可以用来查寻指令的解说和语 法。 "学习使用 Soft-ICE " 这一节包括教你如何安装 Soft-ICE,使用者介面的解说 和一个指导课程。这课程是用来教你认识并很快使用 Soft-ICE 。 "指令" 一节解说 Soft-ICE 的所有指令。指令的解说是由不同的功能分类组织 而成的,并有个按字母顺序排列的索引以供查阅。 "提供的功能" 包括载入时更进一步的选择,符号及原始程式层次的除错,和 EMM 4.0 的能力。 "更进一步的主题" 一节包括如何在 DOS 载入设备驱动程式及非 DOS 作业系统 下使用 Soft-ICE 。 在整个手册中,特别是在课程和指令那一节,所给的范例会要求你对 Soft-ICE 输入资料。当它指示要你按一个键时,你应该按下那个键。当它指示你输入片语时, 你应打出那片语,然後按下 Enter 。 §1.3 系统需求 Soft-ICE 可以在 IBM Series II Model 70 和 80 ,Compaq 80386 及 80386 S ,AT 相容之电脑上执行。 使用 Soft-ICE 最好有延伸记忆体,但在主记忆体中也能正常执行。 Soft-ICE 不使用 DOS 及 ROM BIOS 来处理影像输出及键盘输入,因此萤幕必需 和 MDA 、Hercules 、CGA 、EGA 或 VGA 其中之一相容。Soft-ICE 也支援两个营幕 的设定,这在做 Video-Intensive 程式时很有用。