Z-DEBUG使用介绍
DEBUG是MS Windows/DOS自带的为DOS提供
的有力的排错、跟踪程序运行、检查系统数据的 工具程序,它是在字符界面下以单字符命令方式 工作。要很好地使用它必须具备一定的汇编程序 设计和硬件基本知识的能力,当然,它为汇编语 言程序员提供了有效的调试手段,它的功能包括 以下几个方面。 1. 直接输入、更改、跟踪、运行汇编程序; 2. 观察操作系统的内容; 3. 查看ROM BIOS的内容; 4. 观察更改RAM内部的设置值; 5. 以扇扇区或文件的方式读写软硬盘数据。
1.R命令,Register显示和编辑修 改CPU内部寄存器的值
R显示CPU内部所有寄存器的值
RAX,先显示AX当前值再输入修改后所需
的值,而RAH、RAL是错误的 例:
– RAX,5678,则AX=5678H – RAX,78,则AX=0078H,相当高位自动补零 – RAX,7800,则AX=7800H,AL原值被覆盖! 若只需为AH赋值、AL不变,应用此方法。
2. D命令,Display显示内存单元 的当前值
D,显示当前DS:0100内存单元值 – 依次为地址、内存单元值、ASCII码对应字符
DCS:YYYY,显示当前CS:YYYY内存单元
值 D YYYY,显示当前DS:YYYY内存单元值 D XXXX:YYYY,显示XXXX:YYYY内存 单元值 再连续输入D,则继续显示后续内存单元值
U,从当前CS:IP处开始反汇编
U YYYY,从当前CS:YYYY处开始反汇编 U XXXX:YYYY,从XXXX:YYYY处
开始反汇编
注意反汇编的开始位置,不能截断有效指令!
6.T,单步执行一条即单条指令
T,从当前CS:IP处开始单步执行
T=YYYY,从当前CS:YYYY处开始单步执行 T= XXXX:YYYY,从XXXX:YYYY处
再输入新的值,按空格继续后续字节,按回车 结束编辑修改返回DEBUG提示符 D XXXX:YYYY,显示XXXX:YYYY内存单元 值 试图修改F000:0000、C000:0000内存单元值可知 不能修改,说明对应的是ROM区域; 试图修改DS:0可以修改成功,说明对应的是 RAM区域; 不能乱修改0:0低端内存单元值,因为系统占用
4.A命令,将源指令汇编为目标代码
A,从当前CS:IP处开始汇编
A YYYY,从当前CS:YYYY处开始汇编 A XXXX:YYYY,从XXXX:YYYY处开始
汇编 连续输入一条或多条指令,按回车可退出A 汇编命令,返回DEBUG提示符 利用A命令可以检查指令正误!
5.U,反汇编
运行方式、启动和退出
Win7 x64以后系统需要安装、使用DOS模拟器
DOSBOX。 MS DOS/Winows1.0~XP自带, 安装使用XP系统的虚拟机,课程基于虚拟机 如何进入DEBUG?
– 开始—运行—输入CMD,打开DOS窗口,显示DOS 提示符如―X:\...\...>‖ – 输入DOS命令DEBUG回车,显示DEBUG命令提示 符即减号―-‖
如何退出? – 输入QUIT命令再回车退出DEBUG返回DOS。
DEBUG常用命令
必须注意DEBUG里显示和输入的所有数值
均为十六进制数!!! R,Register,显示和修改寄存器的值 D,Display,显示内存单元的值 E,Edit,编辑修改内存单元的值 A,Assembly,汇编 U,Unassembly T,sTep,单步执行 G,Go,连续执行
开始单步执行
注意单步执行的开始位置,不能截断有效指令!
6.G,连续执行多条指令,直至遇到断 点或结束,当心死机!
G,从当前CS:IP处开始连续执行
G=YYYY1,从当前CS:YYYY处开始连续执行
G YYYY2,从当前CS:IP处开始连续执行直至
遇到断点YYYY2(或可用 int 3指令设置断点) G=YYYY1 YYYY2,从当前CS:YYYY1处 开始连续执行直至遇到断点YYYY2 G=XXXX:YYYY,从XXXX:YYYY处开始 连续执行 例:DOS下连续执行JMP FFFF:0000使电脑重启! 用于满足病毒激发条件时使电脑重启。 注意连续执行的开始位置,不能截断有效指令!
主板ROM-BIOS位于F000:0000, 可查看主板上ROM-BIOS品牌、 版本等信息
显卡BIOS位于C000:0000,可查 看显卡品牌、型号、版本等信息
C800:0000处也存放了显卡BIOS,可 查看显卡品牌、型号、版本等信息
3.E命令,Edit编辑修DS:YYYY内存单元值,
debug使用方法
debug使用方法
Debug的使用方法
Debug是一种调试程序的工具,它可以帮助开发人员诊断和修复编写的程序中的问题。
Debug的使用方法如下:
需要确保编写的程序是可调试的,即它必须有一定的调试功能,以便Debug可以正常运行。
使用Debug工具来开始调试程序,比如可以使用Visual Studio中的Debug工具,可以让用户设置断点,查看程序的变量值,监视内存,检查程序的流程,执行单步调试等,从而帮助开发人员发现程序中的错误。
在使用Debug进行调试的过程中,需要注意一些注意事项,比如不要在Debug模式下进行生产,以免程序发生严重的错误;不要在Debug模式下修改程序的源代码,以免程序发生不可预知的错误;在调试程序时,务必记得使用断点,以便及时发现程序中的错误。
在调试程序完成后,应该关闭Debug工具,以免占用系统资源。
Debug可以帮助开发人员有效地诊断和修复程序中的问题,但在使用Debug进行调试时,也需要注意一些注意事项,以免程序发生不可预知的错误。
DEBUG的使用方法
DEBUG的使用方法在软件开发过程中,Debug(调试)是一个非常重要的步骤,用于找出代码中的错误并进行修复。
通过Debug,开发人员可以逐步执行代码,观察程序的运行过程,以便更好地理解和分析代码的行为。
本文将介绍一些常用的Debug工具和技巧,帮助开发人员更高效地调试代码。
一、Debug工具的选择:1. 集成开发环境(IDE):大多数IDE都内置了强大的Debug功能,如Visual Studio、Eclipse等。
IDE通常提供了断点设置、变量查看、单步执行等功能,能够帮助开发人员更直观地掌握代码的执行过程。
2.调试器:调试器是一种专门用于调试代码的工具,通常可以与IDE 配合使用。
调试器不仅可以提供基本的断点、单步执行功能,还可以显示代码的详细信息、查看内存和寄存器的值,并提供其他高级功能,如跟踪函数调用、查看堆栈等。
3. 日志工具:调试过程中可以使用日志工具输出信息,以帮助开发人员追踪代码的执行路径和变量的值。
常见的日志工具有log4j、logback等。
通过合理使用日志输出,可以将调试信息记录下来,方便之后的分析和定位问题。
二、调试技巧:1. 断点设置:断点是Debug过程中最基本的技巧之一、通过在代码中设置断点,可以暂停程序的执行,并观察当前代码的状态。
在IDE中通常可以通过鼠标单击代码行旁边的行号来设置断点。
2.单步执行:单步执行是一种逐行执行代码的方式,常见的单步执行方式有单步进入、单步跳过、单步返回等。
单步执行可以帮助开发人员了解代码的执行过程,并逐步找出错误所在。
3. 变量查看:在Debug过程中,可以查看程序中各个变量的当前值。
通过观察变量的值,可以判断代码是否按照预期执行,并找出错误的根源。
4.条件断点:条件断点是一种特殊的断点,在达到断点时只有满足一定条件的情况下才会暂停执行。
通过设置条件断点,可以在需要时更精确地调试代码,避免对整个程序进行长时间的调试。
5.异常处理:调试过程中,可能会遇到各种异常。
debug命令解释
常用DEBUG命令的功能及使用举例第一节 DEBUG的主要用途及DEBUG的调用DEBUG是为汇编语言设计的一种调试工具,它通过单步执行、设置断点等方式为汇编语言程序员提供了非常有效的程序调试手段。
DEBUG可以直接用来检查和修改内存单元、装入、存储及启动运行程序、检查及修改寄存器,也就是说DEBUG可深入到计算机的内部,可使用户更紧密地与计算机中真正进行的工作相联系。
不仅如此,对汇编语言初学者来说,DEBUG 也是练习使用汇编指令的一种有效工具。
初学者可以直接在DEBUG环境下执行汇编指令。
然而,在DEBUG下运行汇编语言源程序也受到了一些限制,它不宜汇编较长的程序,不便于分块程序设计,不便于形成以DOS外部命令形式构成的 .EXE文件,不能使用浮动地址,也不能使用ASM和MASM提供的绝大多数伪指令。
在DOS系统中,DEBUG是以DOS外部命令文件形式提供给用户的,名为DEBUG.EXE。
命令文件DEBUG.EXE一般存放在DOS子目录下,因此调用DEBUG时,只需在DOS提示符下键入: DEBUG [<驱动器名>:][<路径>][<文件名>[.<扩展名>]][<参数1>][<参数2>] < 回车>例如: C:\DOS>DEBUG A: B:进入DEBUG的提示符是符号“-”。
即,出现提示符“-”就表示可以接受DEBUG命令了。
当进入DEBUG时,寄存器和标志设成以下数值,这些值用于DEBUG调试中的程序。
段寄存器CS,DS,ES和SS均指向DEBUG末尾的第一个段。
IP寄存器置为0100H。
栈指针SP指向尾部或装入程序的暂存部分的底部。
其余寄存器皆取零值,但若用户调用时含文件说明,则CX含文件长度(长度大于64K 时BX含长度的高位);标志为各自的复位值;驱动器传送地址在代码段位移80H处。
注意,若DEBUG装入扩展名为.EXE的文件,则DEBUG需重定位且设置段寄存器指示器为文件中所定义的值。
debug使用祥解
debug使用详解首先,向大家推荐使用DR-DOS7所带的DR-DEBUG,指令支持到Pemtium pro,功能强大,且支持宏。
最方便的是可以用回车代替上一条u/d/p/t指令,方便察看和调试。
下面把其帮助翻译如下:汇编,把输入的汇编语言转成机器码A [address] (example: Acs:100)设置中断点以调试B [address] [count] [condition] (example: B100 2 al=80)比较两段内存内容Compare C range address (example: C200 20d 500)显示指定内存数据Dump D [range] (example: Dcs:500 L 10)编辑内存数据Enter E [address] [data] (example: Eds:500 "Hello ")填充内存Fill F range data (example: F100 13f "Test ")运行程序从指定点Go G [=address] [breakpoints] (example: Gcs:4bb0)计算Hex H [value1] [value2] (example: H10e 01)从I/O埠输入Input I port (example: I3f2)载入文件或指定逻辑扇区内容Load L [address] [drive] [firstsec] [number] (ex: L0Cff 3 09 10)移动(复制)内存内容Move M range address (example: Mcs:200 220 cs:400)指定操作文件名Name N [drive:] [path] filename (example: )向I/O埠输出Output O port value (example: O3ff 10)单步执行(跳过int/rep/call等)Proceed P [=address] [number] (example: P=ds:3fff)退出debugQuit Q更改或显示寄存器Register R [register_name] (example: Rax 1000)搜索数据于指定内存Search S range data (example: Sds:200 500 32)单步执行(进入int/rep/call等)Trace T [=address] [number] (example: T=3cff:0100 10)反汇编指定内存中机器码Unassemble U [range] (example: U3cff:0200 400)显示屏幕内容(相当于<F4>)Viewswap V (any key returns)写入文件或指定逻辑扇区内容Write W [address] [drive] [firstsec] [number] (ex: Wds:200 0 16 0f) (range 可以是: 开始[段:]偏移结束偏移或开始地址 L 长度)以下是详细使用说明:--- 术语表 ---pathname - 文件名(路径可选)testparms - 参数address - 内存地址[段:]偏移如果省略段地址,以CS用作汇编\反汇编;DS用于其他功能range - 可以是: 开始[段:]偏移结束偏移开始地址 L 长度开始地址, +长度reg - 寄存器名list - 由空格或逗号分开的一些数值(给定类型的)drive - 0 = A:, 1 = B:, ...firstsec - 逻辑扇区号(以0开始)--- 运算符号 ---数可以是16进制(默认的), #十进制, \八进制, %二进制, '字符串'("chars"), 寄存器, [绝对地址], ^堆栈。
debug常见命令使用说明
五、DEBUG调试程序DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。
它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。
1)DEBUG程序使用在DOS提示符下键入命令:C>DEBUG [盘符:][路径][文件名.EXE][参数1][参数2]这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG管理之下,此时可以用DEBUG 进行程序调试。
若所有选项省略,仅把DEBUG装入内存,可对当前内存中的内容进行调试,或者再用N和L命令,从指定盘上装入要调试的程序;若命令行中有文件名,则DOS把DEBUG 程序调入内存后,再由DEBUG将指定的文件名装入内存。
2)DEBUG的常用命令(1)汇编命令A格式:A[起始地址]功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。
若缺省起始地址,则从当前CS:100地址开始存放。
A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
(2)反汇编命令U格式1:U[起始地址]格式2:U[起始地址][结束地址|字节数]功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,缺省起始地址,则从当前地址CS:IP开始。
格式2将指定范围的内存单元中的目标代码转换成汇编指令。
(3)显示、修改寄存器命令R格式:R[寄存器名]功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。
缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000DI=0000 DS=3000 ES=23A0 CS=138E IP=0000NV UP DI PL NZ NA PO NC138E:0000 MOV AX,1234-R AX ;输入命令AX 0014 ;显示AX的内容:;供修改,不修改按回车。
debug命令的使用
1.打开Windows命令窗口在Windows 95/98的环境中,打开命令窗口的步骤为:点击“开始”→“运行”,输入“command”命令;在WindowsXP及WIN7的环境中,打开命令窗口的步骤为:点击“开始”→“运行”,输入“cmd”命令;2.启动DEBUG在命令窗口中启动DEBUG,启动命令一般为:DEBUG [文件名] [参数表]。
其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。
被调试的文件可以是系统中的任何文件,但通常它们的后缀为.EXE或.COM。
当DEBUG启动成功后,将显示连接符“-”,这时,可输入各种DEBUG命令。
DEBUG中所有命令及其含义如DEBUG各命令功能说明表所示。
关于使用命令的几点说明:在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行命令是单个字母,命令和参数的大小写可混合输入可用F1、F2、F3、Ins、Del、左移键、右移键等编辑键来编辑本行命令当命令出现语法错误时,将在出错位置显示“^ Error”可用Ctrl+C或Ctrl+Break来终止当前命令的执行,还可用Ctrl+S或Ctrl+Num Lock来暂停屏幕显示(当连续不断地显示信息时)以下通过实现十九个示例来熟悉DEBUG的命令集和基本的汇编指令。
R命令的使用R命令作用:观看和修改寄存器的值。
在提示符“-”下输入以下命令:R。
DEBUG将会显示出当前所有寄存器和标志位的状态。
接下来再输入命令RCX。
在提示符“:”后输入100。
该命令的作用是将寄存器CX的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。
)最后再执行R命令,观看修改后的寄存器值。
H命令的使用H命令作用:计算两个十六进制数的和与差。
在提示符“-”下输入以下命令:H 10 1。
观看命令执行结果。
运行结果的前一个数是计算出来的和,后一个数是计算出来的差。
DEBUG的使用及调试方法
DEBUG的使用及调试方法1、实验目的和要求:掌握DEBUG下的主要命令如:U、T、D、E、R、A、G、Q命令等。
掌握调试方法,理解CS:IP的作用,要求能在DEBUG下编写简单程序。
2. DEBUG的功能DEBUG是专门为汇编语言设计的调试工具,它通过单步、设置断点等方式,为使用者提供了非常有效的调试手段。
在DEBUG下所有输入的数据都是十六进制,所以不需要后面加H。
并且不区分大、小写字母。
3. DEBUG的调用在DOS下有两种方式调用DEBUG:(1)把执行(调试)文件装入存储器中,格式为:C>DEBUG 文件名.EXE(2)先调用DEBUG,然后用N、L命令把执行(调试)文件装入存储器。
格式为:C>DEBUG-N 文件名.EXE-L4. DEBUG的主要命令(1) U(反汇编):将机器指令进行反汇编,默认的寄存器是CS:IP,从指定地址开始反汇编32个字节,它的格式是:-U[ START-ADDR]-U[ START—ADDR END—ADDR]-U 100 ;汇编开始于CS:100-U 100 150 ;反汇编从100H 到150H的内容。
⑵T(跟踪):以单步方式执行程序。
-T ;执行一条指令。
-T 10 ;执行下面10H(16)条指令。
-T=3 2 ;从指定IP=0003开始,执行下面2条指令.(3)A (把符号指令汇编成机器码):-A 100 ;从指定地址100H开始汇编,结果写入内存。
-A ;不指定地址,则从上次A命令开始汇编。
在A命令下不能使用字段名,A命令只识别指令和DB、DW的伪指令。
⑷G (运行可执行程序):-G 200 ;从程序当前地址执行到200H结束-G ;从程序当前位置执行到程序结束-G =200 260 ;从指定(200H)或当前地址开始执行,遇到断点(260H)停止,显示寄存器和标志寄存器的内容。
⑸E(检查修改内存单元内容):默认寄存器是DS,格式是:-E[ ADDRESS] [表]-E 105 13 3A 21 ;从DS:105H开始输入3个字节的内容-E CS:211 21 2A ;从CS:211H开始输入2个字节的内容-E 110 ‘anything’;输入从DS:110H开始的字符串-E 12C ;检查修改DS:12C的内容该操作等待从键盘的输入一个或多个十六进制值的字节,字节之间用空格隔开。
debug使用教程
实验一调试工具的使用方法训练一、实验目的1.熟悉调试工具DEBUG的使用方法。
2.理解汇编指令、存储单元和寄存器等有关概念。
3.能够对简单的汇编语言程序进行调试。
二、实验设备PC机一台。
三、实验内容及步骤DEBUG是DOS操作系统为汇编语言程序设计者和系统管理员提供的一个通用调试工具,利用DEBUG可以读写、传送、比较、查找和显示存储器单元内容,设置程序起始执行地址或断点,执行程序或分段执行程序,跟踪程序执行,显示处理器状态,汇编或反汇编程序等。
用DEBUG编程简单、方便和直观,可以直接查看程序执行情况,便于熟悉和理解指令,掌握基本编程技巧。
DEBUG只使用十六进制表示数据(十六进制数后不加“H”),屏幕的显示数据形式如下:1400:0100 24 65 6E 64 73 0D 0A 20 - 20 63 6F 64 65 20 20 24 *ends..code * 1400:0110 73 65 67 6D 65 6E 74 0D - 0A 20 20 20 20 20 20 24 segment.. * …………1400:0170 24 61 78 2c 30 0D 0A 09 - 20 20 20 20 70 75 73 68 *ax,0 push屏幕每行显示内容分为三部分,一行共显示十六个字节单元的内容。
第一部分是本行所显示的16个字节数据在存储器中的起始存放地址;第二部分是以十六进制显示的16个字节数据;第三部分是将本行所显示字节数据看作ASCII码时显示的字符,若某字节数据对应不可显示的ASCII码,则显示一个“.”字符代替该字节数据的显示字符。
DEBUG只有十几条单字母命令,功能强且易掌握,常用DEBUG命令如下:1)DEBUG的进入和退出进入DEBUG时,键入如下命令:H:\> DEBUG-“-”是DEBUG的命令提示符,表明已进入DEBUG状态。
在“-”提示符之后,可以键入DEBUG命令。
实验一Debug命令的使用
实验一Debug命令的使用实验一Debug命令的使用一、实验说明1、 DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。
在汇编语言程序调试中很常用。
DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。
DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。
DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。
(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。
2、 Debug的调入和退出以Windows环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态,如:C:\Documents and Settings\mjy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。
退出Debug的命令:Q3、 Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。
若不指定地址,则系统从默认的地址开始存放。
按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。
(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。
若未指定寄存器,则默认为显示所有寄存器的内容。
应用:常用于通过寄存器的值查看指令的执行结果。
(3)内存单元内容的命令E,格式为:- E 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。
ozone j-link debugger使用方法
ozone j-link debugger使用方法Ozone J-Link Debugger 是一种用于调试嵌入式系统的工具,支持多种不同的调试接口和芯片架构。
以下是使用 Ozone J-Link Debugger 的基本方法:1. 下载和安装Ozone J-Link Debugger:访问Segger 官方网站,并下载 Ozone J-Link Debugger 的最新版本。
安装程序将会指导您完成安装过程。
2. 连接目标设备和调试器:将 J-Link 调试器通过 USB 线缆连接到您的开发主机上。
确保您的目标设备也用正确的方式连接到调试器上,这可能需要使用适配器或者正确连接调试接口。
3. 打开 Ozone J-Link Debugger:在安装完成后,您可以在开始菜单或者桌面上找到 Ozone J-Link Debugger,并启动它。
4. 配置目标设备:在 Ozone J-Link Debugger 中,选择"Project" 菜单,并点击 "Options"。
在打开的对话框中,选择合适的目标设备和调试接口。
5. 配置调试连接:在 "Options" 对话框中选择 "Debug" 选项卡,并选择正确的调试器。
您可以指定速度和其他选项来优化连接设置。
6. 配置符号文件:在 "Options" 对话框中选择 "Code" 选项卡,并选择适当的符号文件。
这样可以帮助 Ozone J-Link Debugger 解析和显示源代码。
7. 启动调试会话:点击 Ozone J-Link Debugger 主界面的"Connect" 按钮,Ozone 将尝试与目标设备建立连接。
如果连接成功,您将会看到一些调试和运行控制按钮变为可用状态。
8. 运行和调试程序:在成功连接后,您可以使用 Ozone J-Link Debugger 的各种功能来运行和调试您的程序。
