内容简介:在开发过程中,我主要采用两种方式进行调试,一是使用Debug.exe,通过U盘或者光盘,启动DOS,用debug观察程序是否如想象中的写入硬盘指定区域。在早期的版本中,我也曾经去除了写硬盘以及替换MBR的功能,编译了可以在DOS下运行的Foxdisk,方便自己在DOS下对其进行调试。Debug是个很好的工具,当年开发隔离卡和双网隔离计算机的所有底层代码,均是依靠它来进行的,简单而强大。另外一种调试方式则必须借助虚拟机了,我最常用的是使用bochs,它自带的调试功能,允许程序员看到所有的执行过程,当然也包括M
在开发过程中,我主要采用两种方式进行调试,一是使用Debug.exe,通过U盘或者光盘,启动DOS,用debug观察程序是否如想象中的写入硬盘指定区域。在早期的版本中,我也曾经去除了写硬盘以及替换MBR的功能,编译了可以在DOS下运行的Foxdisk,方便自己在DOS下对其进行调试。Debug是个很好的工具,当年开发隔离卡和双网隔离计算机的所有底层代码,均是依靠它来进行的,简单而强大。
另外一种调试方式则必须借助虚拟机了,我最常用的是使用bochs,它自带的调试功能,允许 程序员 看到所有的执行过程,当然也包括MBR的运行,以及如何把控制权转交给Foxdisk。因为Foxdisk是图形模式,进入图形模式之后,debug就没办法发挥作用了,后期所有的开发调试都是借助了bochs才得以进行下去。
当然,所有的调试环境使用的都是X86的汇编代码,intel指令集的参考书得常备手边。
Debug的命令不多,如图1所示,大概20几条,很容易记忆。
图1 debug常用命令
以一个例子开始debug的使用,尝试用debug将MBR区(也即硬盘线性地址LBA0)的512字节读出,并存到文件mbr.bin中。在当年流行mbr病毒的时候,这是经常使用的方法。
如图2,使用命令’a’,编写一串汇编指令。
图2 读取mbr
Debug中所有数据缺省都是16进制的,int 13实际上表示的是int 0×13(或者说int 13h)。使用int 0×13的02功能,读取mbr所在的位置(磁头0,磁柱0,扇区1)的数据,并拷贝到内存偏移0×200处(当前段)。
使用命令’d’查看读取到的数据。这是Foxdisk中Loader.asm编译后的二进制码,安装的时候写入到了mbr区域。
图3 写数据到文件
如图3,命令’w’将把BX:CX寄存器中指定字节数的内容写磁盘文件。因此,首先用命令’r’修改寄存器bx和cx。示例中需要保存的字节数为512个,因此,bx=0,cx=0×200。
‘w 200’的含义是将ds:0×200处的开始的数据,保存指定的字节数到文件中。
为了便于调试,Foxdisk中有些地方插入了标志字符串,比如Loader.asm开始的“LUOB”,这其实也是为了便于debug定位问题。
特将debug常用的命令记录在此,方便之后查看。
-?显示 Debug 命令列表
-a [address]指定键入汇编语言指令的位置。对 address 使用十六进制值,并键入不以
“h”字符结尾的每个值。如果不指定地址,a 将在它上次停止处开始汇编。
-d [range]指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。有如
果不指定 range,Debug 程序将从以前 d 命令中所指定的地址范围的末尾
开始显示 128 个字节的内容。
-t [=address]从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的
值。如未指定地址则从当前的CS:IP开始执行。
-p [=address]从指定地址起执行指令,直到遇到断点,如未指定地址则从当前的CS:
IP开始执行。
-g [=address]从指定内存地址运行当前在内存中的程序。
-u [range]对指定范围内的存储单元进行反汇编。
-r [register]‘r’显示CPU内所有寄存器内容和标志位状态,‘r register name’则修改
某个寄存器内容。比如-r ax 修改寄存器ax的内容。
-q退出debug。
4 total views, 4 views today
以上所述就是小编给大家介绍的《Foxdisk07-如何调试1》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- iOS常用调试方法:断点调试
- 断点调试和日志调试之间的平衡点:函数计算调试之 Python 篇
- .NET高级调试系列-Windbg调试入门篇
- VisualStudio 通过外部调试方法快速调试库代码
- GDB 调试 Mysql 实战(二)GDB 调试打印
- 使用gdb调试工具上手调试php和swoole源码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
精通CSS与HTML设计模式
Michael Bowers / 刘申 朱瑜敏 鲁奇 / 人民邮电出版社 / 2008-9 / 69.00元
本书是一部非常实用的CSS 与HTML(XHTML)解决方案手册。书中包含了350 多种可以立即使用的设计模式(涉及文本、背景、边框、图片、表格、布局等多方面),并介绍了每种模式的原理和使用。每种设计模式、示例和源代码都经过了精心设计,易于实现和使用。通过阅读此书,可大大提高读者在 Web 设计和开发中的效率和创造力。 本书结构清晰,示例丰富,实践性强,适用于所有Web 开发和设计人员......一起来看看 《精通CSS与HTML设计模式》 这本书的介绍吧!