调试程序DEBUG的使用
debug使用方法

debug使用方法
Debug的使用方法
Debug是一种调试程序的工具,它可以帮助开发人员诊断和修复编写的程序中的问题。
Debug的使用方法如下:
需要确保编写的程序是可调试的,即它必须有一定的调试功能,以便Debug可以正常运行。
使用Debug工具来开始调试程序,比如可以使用Visual Studio中的Debug工具,可以让用户设置断点,查看程序的变量值,监视内存,检查程序的流程,执行单步调试等,从而帮助开发人员发现程序中的错误。
在使用Debug进行调试的过程中,需要注意一些注意事项,比如不要在Debug模式下进行生产,以免程序发生严重的错误;不要在Debug模式下修改程序的源代码,以免程序发生不可预知的错误;在调试程序时,务必记得使用断点,以便及时发现程序中的错误。
在调试程序完成后,应该关闭Debug工具,以免占用系统资源。
Debug可以帮助开发人员有效地诊断和修复程序中的问题,但在使用Debug进行调试时,也需要注意一些注意事项,以免程序发生不可预知的错误。
调试Debug的步骤及使用

调试Debug的步骤及使⽤修改bug的步骤:原则:根据程序运⾏的顺序,⼀步⼀步分析1. 检查jsp页⾯请求是否提交到controller2. 检查controller是否接收到表单的数据3. 检查controller接收到的数据是否传到了Dao4. 检查sql是否执⾏成功,有没有返回正确的数据5. 检查dao的数据是否传到controller6. 检查controller的数据是否传到jsp,并正确显⽰IDEA DeBug调试技巧:1.设置断点选定要设置断点的代码⾏,在⾏号的区域后⾯单击⿏标左键即可。
2.开启调试会话点击红⾊箭头指向的⼩⾍⼦,开始进⼊调试。
IDE下⽅出现 Debug 视图,红⾊的箭头指向的是现在调试程序停留的代码⾏,在⽅法 f2() 中,程序的第17⾏。
红⾊箭头悬停的区域是程序的⽅法调⽤栈区。
在这个区域中显⽰了程序执⾏到断点处所调⽤过的所有⽅法,越下⾯的⽅法被调⽤的越早。
3.单步调试3.1 step over点击红⾊箭头指向的按钮,程序向下执⾏⼀⾏(如果当前⾏有⽅法调⽤,这个⽅法将被执⾏完毕返回,然后到下⼀⾏)3.2 step into点击红⾊箭头指向的按钮,程序向下执⾏⼀⾏。
如果该⾏有⾃定义⽅法,则运⾏进⼊⾃定义⽅法(不会进⼊官⽅类库的⽅法)。
具体步骤如下:在⾃定义⽅法发f1()处设置断点,执⾏调试点击3.3 Force step into该按钮在调试的时候能进⼊任何⽅法。
3.4 step out如果在调试的时候你进⼊了⼀个⽅法(如f2()),并觉得该⽅法没有问题,你就可以使⽤stepout跳出该⽅法,返回到该⽅法被调⽤处的下⼀⾏语句。
值得注意的是,该⽅法已执⾏完毕。
3.5 Drop frame点击该按钮后,你将返回到当前⽅法的调⽤处(如上图,程序会回到main()中)重新执⾏,并且所有上下⽂变量的值也回到那个时候。
只要调⽤链中还有上级⽅法,可以跳到其中的任何⼀个⽅法。
3.6 Run to Cursor点击这个按钮,程序将运⾏到当前光标所在位置如上图,当前程序停留在11⾏,光标在17⾏,点击箭头所指按钮,程序会运⾏到第17⾏(不需要设置断点):4.⾼级调试4.1 跨断点调试设置多个断点,开启调试。
DEBUG使用

北京化工大学信息科学与技术学院
马 静
1
调试程序DEBUG
调试程序DEBUG就是用来调试汇编语言程序的一种工具。 主要功能: ¾ 显示、修改REG、MEM的内容 ¾ 按指定地址启动并执行程序 ¾ 设置断点 ¾ 反汇编被调试程序 ¾ 单条追踪或多条追踪被执行程序 Nhomakorabea2
一、启动和退出DEBUG
3
在启动DEBUG时,将CPU各个寄存器和标志设置为以下状态: ¾ 4个段寄存器(CS,DS,SS和ES)置为指向自由内存空间的底部 (最小地址)。 ¾ 指令指针寄存器IP之外0100H ¾ 堆栈指针寄存器SP置为段的末尾处与的 暂驻部分的低地址中较低者。 ¾ 其余的寄存器(AX,BX,CX,DX,BP,SI,DI)置为0。
1、启动DEBUG (1) 进入DOS系统 Win2000系统:程序 附件 命令提示符,进入DOS 系统,如果不在根目录,使用CD..命令回到根目录,再使用 C:回到C盘根目录 Win98系统:直接在程序下选择MS-DOS方式,进入DOS系统。 其余与Win2000系统下相同。 (2) 启动DEBUG 在C盘根目录下输入DEBUG,按回车键,即可启动DEBUG。 此时可看到闪动的光标。
12
2、运行命令G -G [=address] [breakpoint] Address:指定开始执行指令的地址,如不写,从当前CS:IP 寄存器指定的地址开始跟执行。 breakpoint:指定断点地址。必须写 例:-G =0100 0120 回车 该命令将从CS:0100H 开始执行程序,执行到CS:0120H处 中止。即执行保存在CS:0100H到CS:011FH存储空间内的 程序。
8
A、修改该寄存器的值 AX 0000 :1020 该寄存器的内容会变为1020H B、不修改该寄存器的值 AX 0000 :回车 该寄存器的内容不改变 3. 显示标志寄存器的内容 -RF 回车 NV UP EI PL NZ NA PO NC- 若按下回车键,则保持每个标志位不变,若想修改某个标志位, 可输入此标志位的相反值,顺序无关。 9
DEBUG的使用及程序调试方法

实验一 DEBUG的使用及程序调试方法一.实验目的1、掌握常用DEBUG命令以及调试简单程序。
2、掌握常用汇编指令的功能及其书写格式。
3、掌握在DUBUG下进行简单程序设计并调试。
二.实验环境微型计算机一台DOS或WINDOWS操作系统,MASM开发套件。
三.实验原理DEBUG是专门为汇编语言设计的调试工具软件,它通过单步、设置断点等方式,为使用者提供了非常有效的调试手段。
在DEBUG 下所有输入的数据都是十六进制,所以不需要后面加H。
并且不区分大、小写字母。
1、直接启动DEBUG程序如在C盘的根目录下,启动的方法是:C:\>DEBUG_这时屏幕上会出现“_”提示符,等待键入DEBUG命令。
2、启动DEBUG程序的同时装入被调试文件命令格式如下:C:\>DEBUG [d:][PATH]filename[.EXT][d:][PATH]是被调试文件所在盘及其路径,filename是被调试文件的文件名,[.EXT]是被调试文件的扩展名。
3、DEBUG的主要命令(1)检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态,格式为:-RR命令显示中标志位状态的含义如下表所示:标志名置位复位溢出Overflow(是/否)OV NV 方向Direction(减量/增量)DN UP 中断Interrupt(允许/屏蔽)EI DI 符号Sign(负/正)NG PL 零Zero(是/否)ZR NZ 辅助进位Auxiliary Carry(是/否)AC NA 奇偶Parity(偶/奇)PE PO 进位Carry(是/否)CY NC2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如输入:-R AX系统将响应如下:AX F1F4:表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,输入修改后内容,如:-R BXBX 0369:059F则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为:-RF系统将给出响应,如OV DN EI NG ZR AC PE CY-这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。
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的使用方法

实验内容:编制程序
实现从键盘输入有符号十进制数子程序
子程序从键盘输入一个有符号十进制数
负数用"-"引导
正数直接输入或者用"+"引导
在主程序中给出输入的数的个数为10
输入的数存储到以array开始的10个字空间中
要求完成程序编制及调试
并用DEBUG观察运行结果
实验报告内容
实验题目:
实验目的:
实验内容:
程序清单
实验四 键盘控制发音程序
实验目的:通过编程对PC机中的8253和8255进行控制
db 100 dup(0)
stack ends
code segment 'code'
assume cs:code,ds:data,ss:stack
start proc far
push dx
mov ax,0
push ax
2):用D命令观察程序运行之前DS:0000处开始前20字节的内容并作记录
3: 用G命令从程序开始处运行到程序结束前一条指令
再用D命令观察DS:0000处开始的前20字节的内容
并作记录
并据此说明程序对数据段中的数据进行了哪些操作
改变按键后
计算机扬声器将按照新的频率发声
连续按不同的键
将一直能改变发音频率
直到按回车键退出该程序
实验报告内容
实验题目:
实验目的:
实验内容:
问题回答:所编制的汇编语言程序是如何对8253和8255进行控制的?各选择了什么工作方式?
并用DEBUG调试
debug 的使用

Debug是一种程序调试工具,主要用于帮助程序员检查和修复程序中的错误。
以下是如何使用Debug的基本步骤:
设置断点:断点是一种标记,告诉Debug从标记的地方开始查看。
在要设置断点的代码行上单击鼠标左键即可。
运行程序:在代码区域右击,选择Debug执行。
单步执行:点击Step Into(F7)这个箭头,或者直接按F7,以一行一行地操纵代码,从而判断程序的执行流程是否与预期一致。
查看变量值:在执行过程中,可以查看变量的当前值,以了解程序状态。
删除或禁用断点:选择要删除的断点,单击鼠标左键即可。
如果是多个断点,可以每一个再点击一次。
也可以一次性全部删除。
以上是使用Debug的基本步骤,但请注意,具体使用方式可能会根据Debug的具体版本和配置有所不同。
实验一熟悉使用调试工具软件DEBUG

实验一熟悉使用调试工具软件DEBUG引言调试是软件开发过程中不可或缺的一部分。
通过调试工具软件DEBUG,我们可以查找和修复程序中的错误、检查变量的值、跟踪代码的执行路径等等。
本实验旨在帮助学生熟悉DEBUG的基本功能和使用方法。
一、实验目标1.熟悉DEBUG软件的界面和基本功能;2.学会使用DEBUG软件进行程序的调试和跟踪;3.掌握DEBUG软件中的断点设置和单步执行等功能。
二、实验环境1. 操作系统:Windows 10;2.调试工具软件:DEBUG。
三、实验步骤[DEBUG软件界面截图](1)Registers窗口显示寄存器的内容,包括通用寄存器、段寄存器等;(2)Disassembly窗口显示汇编指令的内容;(3)Dump窗口显示内存中的内容;(1)r:显示寄存器的内容;(2)u:显示当前汇编指令的地址和指令;(3)d:显示内存中的内容。
通过执行这些指令,我们可以查看和了解程序的运行状态和内存存储的内容。
(1)g:运行程序;(2)t:执行一条指令,并显示执行结果;(3)p:执行一行汇编代码,并显示执行结果。
通过执行这些指令,我们可以跟踪程序的执行路径和变量的值。
6. 在Disassembly窗口中,双击一条汇编指令可以设置断点。
设置断点后,程序执行到断点处会自动停止。
在调试过程中,我们可以查看断点前后的变量值,检查程序是否按照预期执行。
(1)bp:查看断点列表;(2)bl:清除断点列表中的断点;(3)bd:删除一个断点。
通过执行这些指令,我们可以管理和控制断点,实现更精细的调试过程。
8. 在DEBUG软件界面中,点击工具栏上的“跟踪”按钮,可以选中“Trace over”、“Trace into”和“Animate”等选项。
这些选项分别表示在执行过程中是否显示详细过程、是否跳过函数调用、是否动画演示执行过程等。
通过选择不同的选项,我们可以根据需要自定义调试过程。
四、实验总结通过本次实验,我们了解了DEBUG软件的基本功能和使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
演示:DEBUG的两种启动方法
启动DEBUG2
4
调
试
程
序
DEBUG
R命令
12
调
试
程
序
DEBUG
② R 寄存器名;显示并修改指定的寄存器。 RAX ;RIP;RF等 5.汇编命令A A [地址];从指定的地址开始输入符号指令; 如省略地址,则接着上一个A命令的最后一个单元开 始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。 注释:①在DEBUG下编写简单程序即使用A命令。 ②每条指令后要按回车。 ③不输入指令按回车,或按Ctrl+C结束汇编。 ④支持所有8086符号硬指令,伪指令只支持DB、 DW,不支持各类符号名。
N命令
S命令
L命令
I命令
W命令
O命令
C命令
M命令
H命令
命令索引
8
调
试
程
序
DEBUG
§3.DEBUG命令
1.显示命令D ① D [地址] ② D [范围] ;如不指定范围,一次显示8行×16个字节。
-D ;默认段寄存器为DS,当前偏移地址 -D DS:100 /-D CS:200 -D 200:100 -D 200;200为偏移地址,默认段寄存器DS -D DS:100 110/ -D 100 L 10
E命令
10
调
试
程
序
DEBUG
3.添充命令F
F 范围 数据表; 将数据表写入指定范围的存储单元;数据个数 多,忽略多出的数据,个数少,则重复使用数据表。 -F DS:0 L5 01,02,03,04,05 -F DS:0 L5 01 02 03 04 05(空格分隔) -F DS:0 L5 FF ;5个字节重复使用FF
A命令
13
调
试
程
序
DEBUG
6.反汇编命令U ① U [地址];从指定地址开始反汇编32个字节 的机器指令;省略地址时,则接着上一个U命令的最 后一个单元开始;若第一次使用U命令省略地址,则 从当前CS:IP开始(通常是CS:100)。
② U 范围;对指定范围的单元进行反汇编。 -U -U100 -U100L10
命令格式
5
调
试
程
序
DEBUG
2.参数格式
①表示地址(逻辑地址): 段地址:偏移地址 D0400:2500 D10ac:0 Dds:04 Dcs:100 偏移地址 D2505 D100 ;DEBUG认为输入的是偏 移地址,段地址采用默认的段寄存器,不同的命 令默认不同的段寄存器,例如汇编命令默认CS, 显示数据命令默认DS。 既不送段地址,也不送偏移地址,段地址采用默 认的段寄存器,偏移地址采用当前值。 只送段地址,省略偏移地址,非法。 如DDS: 或 D0400:
L命令
20
调
试
程
序
DEBUG
13.写盘命令W ① W [地址];将指定地址开始的内存数据写 入磁盘,生成N命令指定的文件;默认的内存地址为 CS:100;写盘的字节数由BX(高位字)和CX(低位字)决 定,可执行程序写盘时,文件扩展名应指定.COM。 -N MY_ -W ② W 地址 驱动器号 扇区号 扇区数;将内存数 据写入磁盘的若干扇区(最多80H);默认的段地址 为CS。 -W DS:0 2 0 1 注释:写磁盘扇区要慎用。
c:\>path c:\windows\command;c\turbo\masm
打通以上路径后, 在DOS任何路径下都可以使用上述 命令
1调试程 Nhomakorabea序
DEBUG
调 试 程 序 DEBUG 的 使 用 DEBUG.EXE是DOS提供的用于调试可执行程 序的工具软件,是汇编语言程序设计中常用 的调试工具。在DEBUG环境下,不但可以调试 经汇编、连接后生成的可执行程序,也可以 编写简单的程序。
U命令
14
调
试
程
序
DEBUG
7.运行程序命令G ① G;从CS:IP指向的指令开始执行程序,直到 程序结束或遇到INT 3。 ② G=地址;从指定地址开始执行程序,直到程 序结束或遇到INT 3。 ③ G 断点1[,断点2,…断点10];从CS:IP指 向的指令开始执行程序,直到遇到断点。 ④G=地址 断点1[,断点2,…断点10] -G ;从CS:IP指向的指令开始执行程序。 -G=100 ;从指定地址开始执行程序。 -G=100 105 110 120
D命令
9
调
试
程
序
DEBUG
2.修改命令E ① E 地址 ;从指定地址开始,修改(或连续 修改)存储单元内容。DEBUG首先显示指定单元内容, 如要修改,可输入新数据;空格键显示下一个单元 内容并可修改,减号键显示上一个单元内容并可修 改;如不修改,可直接按空格键或减号键;回车键 结束命令。
② E 地址 数据表;从指定的地址开始用数据 表给定的数据修改存储单元。 -E DS:100 F3 ‘AB’ 8D。
N命令
19
调
试
程
序
DEBUG
12.装入命令L ① L [地址];装入N命令指定的文件,默认的内
存地址为CS:100。 -N MY_ -L ② L 地址 驱动器号 扇区号 扇区数;将某驱动 器的若干扇区(最多80H个)装入内存;0=A,1=B, 2=C……;默认的段地址为CS。 -L DS:200 2 0 1
*输入命令I I 端口地址;输入一个字节并显示。 *输出命令O
O 端口地址 字节数据;输出到指定的端口。 *传送命令M
M 范围 地址;将指定范围的内容传送到以指
定地址为起点的存储单元。
其它命令2
23
调试程序DEBUG的使用
2
调
试
程
序
DEBUG
§1.启动DEBUG程序 ①在DOS提示符下键入:DEBUG ↙(表示回车) Debug执行,屏幕显示提示符“-”,说明计算机 当前处于DEBUG的管理之下,可接受、并执行 DEBUG命令。 ②在DOS提示符下键入:DEBUG [路径\]文件名↙ DEBUG执行,并将指定文件装入内存,供调试。
G命令
15
调
试
程
序
DEBUG
注
释:
1)最多可设置10个断点。 2)断点必须设置在一条指令的首字节。 3)如设置了多个断点,程序在第一个断点停下 后,显示寄存器、标志及下一条要执行的指令,再次
输入G命令,程序继续往下执行,直到下一个断点或
程序结束。 4)程序如有错误,执行时可能造成死机。
G命令2
16
调
试
程
序
DEBUG
8.跟踪命令(单步执行命令)T ① T;从当前IP开始执行一条指令。 ② T 数值;从当前IP开始执行多条指令。 ② T =地址; ③ T =地址 数值; -T -T5 / -T=100 5 必须用分割符
T命令
17
调
试
程
序
DEBUG
9.跟踪执行并跳过子程序命令P
P [=地址] [数值];类似T命令,但跳过子程序
如不指定被调试程序,DEBUG设置所有段寄存器的
值相同,并指向最低的、可用的段地址;SP指向本 段的尾部;IP指向本段的0100H单元;其它通用寄存 器和所有状态标志清0。
启动DEBUG程序
3
调
试
程
序
DEBUG
如带入的被调试程序扩展名不是.EXE,则BX、CX 包含被调试文件长度(字节数,BX为高位),其他 同上。(带入.COM程序同此)
§2 DEBUG命令和参数的格式
1.命令格式 命令字母[参数] 字母不分大小写; 只使用16进制数,不加H; 分割符只在两个数值之间是必须的,命令和 参数之间可有可无; 键入回车键执行命令,Ctrl+Break或Ctrl+C 中止命令的执行; 如命令不符合DEBUG的规则,则提示“error” 并使用“^”指示错误位置。
W命令
21
调
试
程
序
DEBUG
14.其他命令 *比较命令C C 范围 地址;将指定范围内的内容与以指定
地址为起点的内容相比较。 *16进制数计算命令H
H 数1,数2(H 数1 数2);同时计算两个数 字的和与差。 *查找命令S
S 范围 数据;在指定范围内查找指定数据。
其他命令1
22
调
试
程
序
DEBUG
和中断服务程序。
10.退出DEBUG命令Q Q;返回DOS环境。 -Q
P、Q命令
18
调
试
程
序
DEBUG
11.命名命令N
N 文件标示符;指定文件,以便用W命令在磁盘 上生成该文件,或者用L命令从磁盘装入该文件。 -N MY_ 写盘:在当前盘当前目录生成指定文件。 读盘:在当前盘当前目录读取指定文件。 - N A:\ USER \ MY_
参数格式1
6
调
试
程
序
DEBUG
②表示范围
开始地址 如“D DS:0 结束地址 50”,“D2AC0:100 200”,“D100 120”
注意:结束地址不能带段地址 开始地址 L 字节长度 如 “D DS:0 L 10”, “D100L20”
参数格式2
7
调
试
程
序
DEBUG
命 令 索 引
D命令 U命令 E命令 G命令 F命令 T命令 R命令 P命令 A命令 Q命令