debug怎么用
以eclipse为例,debug的用法:1、首先在一个java文件中设断点,然后debug as,open debug Dialog,然后在对话框中选类后,Run。2、F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6是step over,也就是执行本行代码,跳到下一行。3、F7是跳出函数,F8是执行到最后。4、resume重新开始执行debug,一直运行直到遇到。5、hit count设置执行次数 适合程序中的for循环设置 breakpoint view右键。6、inspect检查运算。执行一个表达式显示执行值。7、watch实时地监视变量的变化。8、field breakpoint当成员变量被读取或修改时暂挂。9、添加method breakpoint进入或离开此方法时暂挂。10、添加Exception breakpoint捕抓到Execption时暂挂。11、variables视图里的变量可以改变变量值,在variables视图选择变量点击右键change value,一次来进行快速调试。说明:复制操作对现有数据的影响。如果新数据没有写入正在被复制的数据块中的地址,则源数据将保持不变。但是,如果目标块已经包含数据(就象它在覆盖副本操作中一样),则将改写该数据。(覆盖复制操作是指那些目标数据块部分内容覆盖原数据块部分内容的操作。)。执行覆盖复制操作。m 命令执行目标地址的覆盖复制操作,而不丢失数据。将改写的地址内容首先复制。因此,如果将较高位地址的数据复制到较低位地址,则复制操作从原块的最低位地址开始并向最高位地址进行。反之,如果要将数据从低地址复制到高地址,复制操作从原块的最高地址开始,向最低地址进行。
debug命令有什么作用?如何使用?
DEBUG是为汇编语言设计的一种高度工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。\x0d\x0a一、DEBUG程序的调用\x0d\x0a 在DOS的提示符下,可键入命令:\x0d\x0a C:\DEBUG [D:][PATH][FILENAME[.EXT]][PARM1][PARM2]\x0d\x0a 其中,文件名是被调试文件的名字。如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。\x0d\x0a 在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。\x0d\x0a二、DEBUG的主要命令\x0d\x0a 1、显示存储单元的命令D(DUMP),格式为:\x0d\x0a _D[address]或_D[range]\x0d\x0a 例如,按指定范围显示存储单元内容的方法为:\x0d\x0a -d100 120\x0d\x0a18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G...\x0d\x0a18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.\x0d\x0a 7\x0d\x0a18E4:0120 8B\x0d\x0a 其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。\x0d\x0a2、修改存储单元内容的命令有两种。\x0d\x0a ·输入命令E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:\x0d\x0a -E address[list]\x0d\x0a例如,-E DS:100 F3'XYZ'8D\x0d\x0a 其中F3,'X','Y','Z'和各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。\x0d\x0a 第二种格式则是采用逐个单元相继修改的方法。命令格式为:\x0d\x0a -E address\x0d\x0a例如,-E DS:100\x0d\x0a 则可能显示为:\x0d\x0a 18E4:0100 89.-\x0d\x0a 如果需要把该单元的内容修改为78,则用户可以直接键入78,再按“空格”键可接着显示下一个单元的内容,如下:\x0d\x0a 18E4:0100 89.78 1B.-\x0d\x0a 这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。\x0d\x0a ·填写命令F(FILL),其格式为:\x0d\x0a -F range list\x0d\x0a例如:-F 4BA:0100 5 F3'XYZ'8D\x0d\x0a 使04BA:0100~0104单元包含指定的五个字节的内容。如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。\x0d\x0a3)检查和修改寄存器内容的命令R(register),它有三种格式如下:\x0d\x0a ·显示CPU内所有寄存器内容和标志位状态,其格式为:\x0d\x0a -R\x0d\x0a例如,-r\x0d\x0a AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000\x0d\x0a DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC\x0d\x0a 18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000\x0d\x0a ·显示和修改某个寄存器内容,其格式为:\x0d\x0a -R register name\x0d\x0a例如,键入\x0d\x0a -R AX\x0d\x0a 系统将响应如下:\x0d\x0a AX F1F4\x0d\x0a :\x0d\x0a即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如:\x0d\x0a\x0d\x0a -R bx\x0d\x0a BX 0369\x0d\x0a :059F\x0d\x0a则把BX寄存器的内容修改为059F。\x0d\x0a ·显示和修改标志位状态,命令格式为:\x0d\x0a -RF系统将响应,如:\x0d\x0a OV DN EI NG ZR AC PE CY-\x0d\x0a 此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:\x0d\x0a OV DN EI NG ZR AC PE CY-PONZDINV\x0d\x0a 即可,可见键入的顺序可以是任意的。\x0d\x0a4)运行命令G,其格式为:\x0d\x0a -G[=address1][address2[address3?]]\x0d\x0a 其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。\x0d\x0a5)跟踪命令T(Trace),有两种格式:\x0d\x0a ·逐条指令跟踪\x0d\x0a -T [=address]\x0d\x0a 从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。\x0d\x0a ·多条指令跟踪\x0d\x0a -T [=address][value]\x0d\x0a 从指定地址起执行n条指令后停下来,n由value指定。\x0d\x0a6)汇编命令A(Assemble),其格式为:\x0d\x0a -A[address]\x0d\x0a 该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。\x0d\x0a7)反汇编命令U(Unassemble)有两种格式。\x0d\x0a ·从指定地址开始,反汇编32个字节,其格式为:\x0d\x0a -U[address]\x0d\x0a例如:\x0d\x0a -u100\x0d\x0a 18E4:0100 C70604023801 MOV WORD PTR[0204],0138\x0d\x0a 18E4:0106 C70606020002 MOV WORD PTR[0206],0200\x0d\x0a 18E4:010C C70606020202 MOV WORD PTR[0208],0202\x0d\x0a 18E4:0112 BBO4O2 MOV BX,0204\x0d\x0a 18E4:0115 E80200 CALL 011A\x0d\x0a 18E4:0118 CD20 INT 20\x0d\x0a 18E4:011A 50 PUSH AX\x0d\x0a 18E4:011B 51 PUSH CX\x0d\x0a 18E4:011C 56 PUSH SI\x0d\x0a 18E4:011D 57 PUSH DI\x0d\x0a 18E4:011E 8B37 MOV SI,[BX]\x0d\x0a如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。\x0d\x0a ·对指定范围内的存储单元进行反汇编,格式为:\x0d\x0a -U[range]\x0d\x0a例如:\x0d\x0a -u100 10c\x0d\x0a 18E4:0100 C70604023801 MOV WORD PTR[0204],0138\x0d\x0a 18E4:0106 C70606020002 MOV WORD PTR[0206],0200\x0d\x0a 18E4:010C C70606020202 MOV WORD PTR[0208],0202\x0d\x0a或\x0d\x0a -u100 112 \x0d\x0a 18E4:0100 C70604023801 MOV WORD PTR[0204],0138\x0d\x0a 18E4:0106 C70606020002 MOV WORD PTR[0206],0200\x0d\x0a 18E4:010C C70606020202 MOV WORD PTR[0208],0202\x0d\x0a\x0d\x0a 可见这两种格式是等效的。\x0d\x0a8)命名命令N(Name),其格式为:\x0d\x0a -N filespecs [filespecs]\x0d\x0a命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入存盘。filespecs的格式可以是:\x0d\x0a[d:][path] filename[.ext]\x0d\x0a例如,\x0d\x0a -N myprog\x0d\x0a -L\x0d\x0a -\x0d\x0a可把文件myprog装入存储器。\x0d\x0a9)装入命令(Load),有两种功能。\x0d\x0a ·把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为:\x0d\x0a -L[address[drive sector sector]\x0d\x0a ·装入指定文件,其格式为:\x0d\x0a -L[address]\x0d\x0a此命令装入已在CS:5CH中格式化了文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。\x0d\x0a10)写命令W(Write),有两种功能。\x0d\x0a ·把数据写入磁盘的指定扇区。其格式为:\x0d\x0a -W address drive sector sector\x0d\x0a ·把数据写入指定的文件中。其格式为:\x0d\x0a -W[address]\x0d\x0a此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX和CX中。\x0d\x0a11)退出DEBUG命令Q(Quit),其格式为:\x0d\x0a -Q\x0d\x0a它退出DEBUG,返回DOS。本命令并无存盘功能,如需存盘应先使用W命令。
妙用DEBUG清除CMOS密码
打开机箱,找到主板上的电池,将其与主板的连接断开(就是取下电池喽),此时CMOS将因断电而失去内部储存的一切信息。再将电池接通,合上机箱开机,由于CMOS已是一片空白,它将不再要求你输入密码,此时进入BIOS设置程序,选择主菜单中的"LOAD
BIOS
DEFAULT"(装入BIOS缺省值)或"LOAD
SETUP
DEFAULT"(装入设置程序缺省值)即可,前者以最安全的方式启动计算机,后者能使你的计算机发挥出较高的性能正版xp系统下载。
妙用DEBUG清除CMOS密码
如果你忘记了进入CMOS设置程序的密码,除了可以在主板上使用跳线短接清除的方法外,还可以使用软件清除的方法,下面就来介绍如何在DOS下清除CMOS密码的方法。
在DOS中提供了一个编辑器,就是DEBUG,这是一个非常实用的工具,启动方法是,在DOS命令提示符状态下输入命令:DEBUG、此时即可进入DEBUG编辑界面。
在命令符状态下输入命令后,重新启动电脑即可清除CMOS密码,下面给出五个清除CMOS密码的命令行。
方法一
-o
70
16
-o
71
16
-q
方法二
-o
70
11
-o
71
ff
-q
方法三
-o
70
10
-o
71
10
-q
方法四
-o
70
23
-o
71
34
-q
方法五
-o
70
10
-o
71
ff
-q
方法六
-o
70
90
-o
71
91
-q
dos 里的 debug怎么用啊求大神帮助
用DEBUG清除CMOS密码详解
上期介绍的清除CMOS密码的方法中,有一种常用方法就是通过使用DOS系统外部命令DEBUG来清除CMOS的密码。操作步骤如下:
进入DOS后(注意:不要在Win2000/NT/XP环境下进入,因为这不是真正的DOS),在命令提示符后输入DEBUG,回车后再输入如下命令:
-o7016-o7116-q此时,已退出到DOS提示符。重新启动计算机,你就会发现原来的CMOS密码已经被清除。
它的原理非常简单:当计算机接通电源时,首先执行的是BIOS中的加电自检程序POST,它首先对整个计算机系统进行检测,包括对CMOSRAM中的配置信息作“累加和”测试。该累加结果和计算机以前的存储结果进行比较,当两者相吻合时,计算机认为CMOSRAM中的配置信息有效,自检继续进行;当两者的结果不相等时,系统报告错误,要求计算机重新配置,并自动取BIOS的默认设置值,原有CMOS口令被忽略,此时即可进入BIOSSETUP进行设置。
因此,当口令保护被设置为SETUP时,可利用一些小工具,特别是DOS系统中的常用外部命令(如使用DOS的调试工具DEBUG.COM)来清除CMOS密码。即往CMOSRAM中的任一单元写入一个数据,破坏CMOS的累加测试值,就能达到清除CMOS口令的目的。
一般来讲,计算机的CMOS设置可以通过70H和71H两个端口进行访问和更改,使用DEBUG命令向端口发送数据的“o”命令向70H和71H两个端口发送一些错误数据,就可以清除CMOS密码,当然这时CMOS里的其他设置也都恢复成了缺省设置值,需要我们重新设置。
通常,我们知道的一般就是输入以上的数据,其实还有不少数值同样可以达到清除CMOS密码的目的,如10、16、17、20、23、34、FF等。有兴趣的朋友不妨多用几个数据试试。
当然,为了使用上的方便,我们可以将以上的操作用DEBUG写成一个程序放在自己命名的文件中,具体操作步骤就是进入DOS后,运行DEBUG,输入如下编码:
-A100XXXX:0100MOVDX,70XXXX:0103MOVAL,10XXXX:0105OUTDX,ALXXXX:0106MOVDX,71XXXX:0109MOVAL,01XXXX:010BOUTDX,ALXXXX:010C-DRCXC-DNDELCMOS.COM-WWRITING000CBYTES-Q这样,以后只要运行这个文件,就可以轻松清除CMOS的密码,免去了每次输入的麻烦。
用DEBUG
可以看到很细节的东西
例
有一条电路(DDN)端口协议能起来,但链路协议始终起不来,用DEBUG
PPP
PAC可以看到两端协商的情况。有一次,我遇到此种情况,我说是电信链路的问题,电信说是我的设备或配置的问题,最后用DEBUG发现我的S口上一直有OUT,但没有IN,说明DDN的透传电路根本没有起作用。最后电信修改电路后正常。
有一条FR(我已是电信人员)用户说电路有问题,我上门查发现用户端口上有IN,OUT,说明用户的路由器可以与REMOTE
ROUTER建立基本通讯,由于配置的问题PPP协商无法通过,用户信服,最终发现了自己的问题。
OSPF路由协议的路由表不正常,发现某个NEIGHBER以极高的频率发包,关掉该结点后正常,最后发现该点有环路。
总之,DEBUG
是很有用的工具,平时注意收集一些成功的信息(例如PPP,OSPF)当出现问题时进行对比,可能会有帮助。
注意,DEBUG信息当中有很多内容可能看不懂,但可以在网站查,较难,
DEBUG的命令语法很简单,但要注意比较占资源,有时开始一个输出量很大的DEBUG后,路由器基本上不响应其他所有命令,有点象死机,但可以重启。一般在CON中使用此命令,TELNET最好不要用。