调试程序工具DEBUG
- 格式:doc
- 大小:2.73 MB
- 文档页数:5
debug使用方法
Debug的使用方法
Debug是一种调试程序的工具,它可以帮助开发人员诊断和修复编写的程序中的问题。
Debug的使用方法如下:
需要确保编写的程序是可调试的,即它必须有一定的调试功能,以便Debug可以正常运行。
使用Debug工具来开始调试程序,比如可以使用Visual Studio中的Debug工具,可以让用户设置断点,查看程序的变量值,监视内存,检查程序的流程,执行单步调试等,从而帮助开发人员发现程序中的错误。
在使用Debug进行调试的过程中,需要注意一些注意事项,比如不要在Debug模式下进行生产,以免程序发生严重的错误;不要在Debug模式下修改程序的源代码,以免程序发生不可预知的错误;在调试程序时,务必记得使用断点,以便及时发现程序中的错误。
在调试程序完成后,应该关闭Debug工具,以免占用系统资源。
Debug可以帮助开发人员有效地诊断和修复程序中的问题,但在使用Debug进行调试时,也需要注意一些注意事项,以免程序发生不可预知的错误。
使用debug调试python程序为方便学生理解程序运行情况,把程序运行过程中变量的变化情况显示出来,便于学生更好地理解循环语句。
一、打开Python Shell,再打开一个程序文件。
在Python Shell中打开菜单debug->debugger,系统打开一个“debug control”窗口,Python Shell中显示[DEBUG ON]说明已进入调试状态。
二、运行程序。
在程序窗口单击“run”->“run module”,在“debug control”窗口选中Source选项,程序运行过程中,正在运行的语句就可以高亮显示,单击“O ver”按钮则可以单步运行程序。
在窗口的最下方可以看到变量的变化情况。
按钮说明:
“Go”——跳至断点
“Step”——调试过程中进入函数内容“Over”——单步运行不进入函数
“O ut”——调试过程中跳出函数“Quit”——结束调试。
常用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的步骤及使⽤修改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 跨断点调试设置多个断点,开启调试。
附录七 X86汇编语言程序调试工具 DEBUG 使用简介DEBUG是DOS系统下的程序调试工具,以DOS外部命令形式提供。
该外部命令对应的文件名为DEBUG.EXE,一般存放在DOS子目录下。
运行DEBUG程序的命令格式为:DEBUG [<驱动器名>:][<路径>][<文件名>[.<扩展名>]][<参数1>][<参数2>] < 回车> 例如:C:\DOS>DEBUG A.EXE < 回车>进入DEBUG后出现提示符“-”,就表示可以接受DEBUG命令了。
DEBUG命令使用说明:1)DEBUG命令是在提示符“-”之后,由键盘键入。
2)每条命令以单个字母的命令符开头,然后是命令操作参数。
3)操作参数与命令符之间用空格隔开,操作参数之间用空格或逗号隔开。
4)所用数均为十六进制数,不必加写H。
5)命令结束符是回车键<Enter>(在下面的命令格式中,不再单独标出)。
按组合键Ctrl+Break可中止正在执行的DEBUG命令,并返回提示符“—”。
常用命令介绍如下(以下有下划线处表示是从键盘输入的内容):告警:使用以下关于修改内存的命令A、E、F、M等,应注意内存地址(包括段基值和偏移地址)的准确性。
错误地更新了系统程序区,可能会造成死机!写磁盘的DEBUG命令(本文未列出)更应慎重使用!1.DEBUG命令列表—?屏幕显示DEBUG命令列表。
2.返回DOS命令Q(Quit)—Q退出DEBUG程序并返回DOS。
注意此命令不能将内存中的文件存盘。
3.显示内存单元内容命令D(Dump)—D[地址或范围]其中“范围”包括起始地址和结束地址,可以在地址前加段前缀。
例如:—D1366:110 11F屏幕显示为1366:0110 24 09 7E 21 00 00 00 00-34 00 00 00 00 00 55 13 $.~ !....4.....U.上面分左、中、右三部分显示:左边部分1366:0110是内存单元地址,中间及右边部分分别是1366:0110至1366:011F内存单元内容的16进制数表示及ASCII字符(“.”表示非ASCII码的数字)。
Debug是一种程序调试工具,主要用于帮助程序员检查和修复程序中的错误。
以下是如何使用Debug的基本步骤:
设置断点:断点是一种标记,告诉Debug从标记的地方开始查看。
在要设置断点的代码行上单击鼠标左键即可。
运行程序:在代码区域右击,选择Debug执行。
单步执行:点击Step Into(F7)这个箭头,或者直接按F7,以一行一行地操纵代码,从而判断程序的执行流程是否与预期一致。
查看变量值:在执行过程中,可以查看变量的当前值,以了解程序状态。
删除或禁用断点:选择要删除的断点,单击鼠标左键即可。
如果是多个断点,可以每一个再点击一次。
也可以一次性全部删除。
以上是使用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 地址[内容表]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束。
debug调试程序的使用实验原理Debug调试程序是一种在软件开发过程中用于定位和修复程序错误的工具。
它可以帮助开发人员在程序运行时检测和诊断错误,并提供相应的信息以便于修复错误。
在本文中,我们将探讨Debug调试程序的使用方法以及其背后的原理。
Debug调试程序的使用Debug调试程序是由软件开发工具提供的一种功能,例如集成开发环境(IDE)或命令行调试器。
它允许开发人员以步骤方式执行程序,观察每一步的结果,并在每一步之间检查程序状态和变量的值。
以下是Debug调试程序的使用步骤:1.设置断点:断点是程序执行暂停的标记。
通过在代码中设置断点,开发人员可以指示调试器在该处暂停执行。
一般来说,可以在IDE 中点击代码行号或使用调试命令设置断点。
2.启动调试器:在设置断点后,可以启动调试器来执行程序。
调试器将会在达到断点处暂停执行,并等待进一步的调试命令。
3.逐步执行:一旦程序暂停在一个断点上,开发人员可以使用调试命令逐步执行代码。
常用的调试命令包括执行下一步、进入函数、跳出函数、继续执行等。
4.观察变量:在每个代码步骤中,开发人员可以查看变量的值以及程序状态。
这对于发现错误、理解代码逻辑以及验证程序逻辑非常有用。
5.修改变量值:在调试过程中,开发人员可以修改变量的值,以便验证不同的情况和修复错误。
这可以通过在调试器的变量窗口中直接修改变量值,或者在调试命令中使用特定的语法进行。
6.检查函数调用栈:函数调用栈是程序中函数调用的历史记录。
调试器允许开发人员检查调用栈,找到导致错误的函数调用路径。
7.调试复杂数据结构:在调试过程中,开发人员可能需要检查复杂的数据结构,例如数组、链表、对象等。
调试器通常提供了可视化工具和命令来帮助开发人员检查和修改这些数据结构。
8.寻找内存错误:调试器还可以帮助开发人员寻找内存错误,例如空指针解引用、内存泄漏等。
通过检查内存地址、跟踪内存分配和释放等功能,开发人员可以更容易地识别和修复这些问题。
debug的基本使用
Debug是一种在软件开发过程中用于调试程序的工具。
它可以帮助开发人员找到程序中的错误并进行修复,从而提高程序的质量和稳定性。
下面将介绍Debug的基本使用方法。
1. 设置断点
断点是Debug中最常用的功能之一。
它可以让开发人员在程序执行到指定位置时暂停程序,以便进行调试。
设置断点非常简单,只需要在
代码行号左侧单击鼠标即可。
2. 运行程序
设置好断点后,就可以运行程序了。
在运行过程中,程序会执行到第
一个断点处停止。
此时可以查看变量值、函数调用栈等信息来分析问题。
3. 单步执行
单步执行是指逐条执行代码,并查看每个语句的效果。
这个功能非常
有用,因为它能够帮助开发人员深入了解代码的执行过程,并找出可
能存在的错误。
4. 监视变量
监视变量可以让开发人员实时查看变量值的变化情况。
当某个变量值发生改变时,Debug会自动提示开发人员,并显示新值和旧值之间的差异。
5. 调试崩溃
当程序崩溃或出现异常时,Debug可以帮助开发人员快速定位问题。
在这种情况下,开发人员可以使用Debug来查看程序的状态、变量值等信息,并找出导致程序崩溃的原因。
总之,Debug是一种非常有用的工具,它可以帮助开发人员快速定位问题并进行修复。
掌握Debug的基本使用方法对于提高软件质量和稳定性非常重要。
调试程序工具DEBUG
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。
使用它可以检查和改变存储内容,调试和运行程序,还可以随时中断程序的运行,进行数据检查和修改。
1.Debug的进入和退出
Debug是在DOS方式下使用的程序。
我们在进入Debug前,应先进入到DOS方式。
用以下方法可以进入DOS。
◆重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。
◆在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。
下面是在Windows XP中进入Debug的一种方法,在其它Windows版本中类似。
选【开始】菜单中的【运行】命令,打开【运行】对话框,在文本框中输入“command”后,单击【确定】按钮。
本章中的例子默认Debug程序在驱动器C中,如果你的系统设置与此假设不同,请变更驱动器或目录。
在DOS目录下键入DEBUG的名称,就可以进入DEBUG程序。
键入“DEBUG”不分大小写。
DEBUG提示符是“-”,此时,你就可以输入DEBUG的命令了。
退出命令Q,输入Q并按Enter回车键就退出DEBUG运行环境返回到DOS目录下。
2.寄存器内容的检查和修改
可以通过寄存器命令对CPU内部的寄存器内容进行检查,并可以修改寄存器的内容。
指令格式:R <寄存器名称>
指令尖括号内容是指令可选部分,如果没有输入<寄存器名称>,使用R指令将显示所有寄存器的内容;否则将只显示输入名称的寄存器的内容。
输入R命令并按回车键,DEBUG将显示三行信息。
第一行显示了通用寄存器、指针寄存器和索引寄存器的内容。
第二行显示了段寄存器的内容、指令指针的当前值以及标志寄存器位。
第二行后面的几个代码“NV UP …NC”表示标志寄存器中的8位状态。
标志寄存器在DEBUG中的表示方式在后面加以说明。
第三行显示了程序将要执行的指令,显示了通过CS:IP发出的指令。
在刚开始进入DEBUG时,通用寄存器的初始值会设为零,标志位全部复位。
虽然段寄存器
在不同的系统中具有不同的内容,但是同一个系统中各个段寄存器的值都是一样的,这一点是由操作系统决定。
本例中段寄存器的值是17FE。
由于段寄存器的值是操作系统默认的,所以千万不要改变它。
修改寄存器内容,如图在R指令后输入AX寄存器,下一行显示AX寄存器的内容是“0000”,第三行出现冒号,在这里输入新的值后按回车键AX寄存器被新的值取代,直接按回车键寄存器的内容不变。
使用R指令不能单独调用通用寄存器的高8位和低8位寄存器,例如:-r ah 或–r al是错误的。
3.对DEBUG中的程序进行编码及运行
A命令用于将汇编语言命令输入到存储器中。
命令格式:A <起始地址>
起始地址可以用偏移量来表示,在这种情况下它默认为代码段的偏移量;否则,就需要指定具体的段寄存器。
输入“A 100”和“A CS:100”得到的结果是一样的。
在命令提示符“-”后面输入此命令时,DEBUG就会提示你开始进入汇编语言命令输入,在地址提示符下直接按回车将结束指令输入。
在DEBUG环境下输入汇编语言指令操作数采用立即寻址方式时默认的是十六进制形式。
当你输入指令到偏移地址为0100的存储单元中,DEBUG将这条指令转换为机器语言,并放在0100到0102之间,然后提示你输入下一条指令,这条指令就会被存储到偏移地址0103的存储单元中。
注意:不要从低于100偏移地址单元开始汇编。
开始的100H(256)字节是DOS预留的,不能用于你编写的程序。
U 反汇编指令
反汇编指令显示出存储器中的机器代码以及相应的汇编语言指令。
指令格式:U <起始地址> <结束地址>
U <起始地址> <十六进制表示的字节数>
反汇编是将存储在存储器中的机器代码转换成汇编语言指令。
“-U 100 10B”是第一种格式,“-U 100 LB”是第二种格式,其中“L”表示长度,“B”是字节数。
反汇编显示出“17FE:0100”是代码段段地址和指令的偏移地址,“B80100”是“MOV AX,0001”的机器指令。
如果输入U命令后面不带地址直接回车,DEBUG将显示从CS:IP开始的32个字节。
连续输入将继续显示。
执行命令
执行命令请求DEBUG执行给出地址范围之间的所有指令。
指令格式:G <=起始地址> <终止地址>
如果没有给出地址,DEBUG就从CS:IP开始执行指令直到到达终止点。
当只给出指令“-G”,从当前指令指针(CS:IP)指定的指令开始执行直到遇到“INT 3”终止程序指令,屏幕显示当前寄存器的值和标志位的状态。
指令“-G=100 109”是从起始偏移地址为0100处开始执行直到偏移地址是0109处停止,显示当前各个寄存器的值和标志位的状态。
跟踪命令
用跟踪命令可以在程序的执行过程中同时跟踪一条或多条指令,对寄存器和数据程序功能进行效验。
指令格式:T <=起始地址> <指令数>
这条指令从起始地址开始执行指令,如果没有给出指令数,默认的指令数为1。
如果没有给出起始地址,跟踪命令同执行命令一样从CS:IP开始执行。
跟踪指令执行每一条指令都会显示指令执行后各个寄存器的值和标志位的状态,并显示下一条将要执行的指令代码。
显示存储单元的命令
D命令用于检查存储器的内容。
命令格式:D <起始地址> <结束地址>
D <起始地址> <十六进制表示的字节数>
运用D命令可以显示从起始地址到结束地址存储器中的全部字节内容。
也可以采用第二种形式显示从起始地址开始的指定字节长度的存储内容。
“-D CS:100 010B”是采用的第一种格式,显示起始地址“CS:100”开始到“010B”存储字节的内容。
“D 100 L0C”是采用第二种格式,显示从起始地址从“100”开始的长度为“0C”
个字节的内容。
如上图在地址后面显示了16个字节的数据以及它们所代表的内容。
如果有的字节包含ASCII码字符,那么该字符将会被显示出来。
如果字节的内容不是ASCII码,这个字节将不被显示,并以“.”表示出来。
将数据输入存储器指令
E 命令将数据项填充到存储器中。
命令格式:E <地址> <数据列表>
E <地址>
指令“-E 200 ‘Hello John’”输入起始地址和数据,起始地址为DS:200内存字节存储‘Hello John’的ASCII码。
第二种格式没有数据列表,DEBUG会假设你想检查存储器字节内容,并在必要时进行修改。
对于所显示的字节内容,你可以执行以下四种操作。
⑴在此字节处输入新的数据项。
DEBUG将用新输入的内容替换原内容。
⑵如果不希望改变原来的字节则直接按回车键。
⑶如果不想改变当前字节,而想检查下一个字节则按空格键。
⑷如果不想改变当前字节,而想检查上一个字节则输入减号“-”。
3.7标志寄存器的表示和修改
命令“R F”是显示标志寄存器的内容。
在所显示的内容之后,将会出现另一个提示符“-”。
此时可以输入寄存器代码来修改标志寄存器,如果不修改则只需输入回车。
输入寄存器的代码顺序可以是任意的。
从磁盘载入文件
DEBUG载入调试的程序有两个方法。
通过加载命令载入此文件。
命令格式:N <文件名>
L
另一种是在刚进入DEBUG程序时,输入命令格式:DEBUG <文件名>。