电脑系统运行慢怎样解决-电脑系统运行debug
1.电脑总是跳出debug assertion failed怎么解决
2."debug"在电脑中是什么意思?有什么作用啊?请说明白点!非常感谢!!!
3.如何在64位操作系统下使用debug命令
4.电脑XP系统怎么使用debug查看内存和汇编指令
电脑总是跳出debug assertion failed怎么解决
1、运行时候出现以错误:
2、原因:函数过于旧,不安全。代码逻辑有问题 或者 函数参数写错了(大小写, 符号中文等)
3、解决方式:运行环境需要设置,fopen()函数已经被新的fopen_s()取代,仍然使用需要修改一处环境 ? 在如图的地方复制添加这句话?_CRT_SECURE_NO_WARNINGS在最下面?然后点击保存即可以:
"debug"在电脑中是什么意思?有什么作用啊?请说明白点!非常感谢!!!
debug是一个汇编工具
DEBUG的用法。
DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。
DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据: 十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。
在DEBUG中输入数据有两种方法: 提示方法和非提示方法。在用提示方法时,用户可以输入要求输入数据的命令,后跟数据所要输入的地址。然后用户就可以看到该地之中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到短横(-)提示符。在运用非提示方法时,用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样,在使用DEBUG时,用户不能直接移动光标到一入口点输入或修改数据,而要一次输入一个或几个字节。
在使用DEBUG时可以只涉及内存中的数据,从而一般都要指定所要处理的内存地址,地址的输入格式是: [段地址]: [位移]。如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用,这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。
讲到这里大家应该对DEBUG有了初步的了解,但是光知道这些可不够,接下来我来讲讲DEBUG的命令格式和命令。当输入
DEBUG
调用了DEBUG程序,就会出现一个短横提示符,用户就可以在这一短横后输入DEBUG程序的命令。有些DEBUG命令会显示一个内存地址并产生一个作为提示符的冒号。在这些提示符后,用户可以输入一个新值以改变所显示位置原来的值。如果用户不输入一个新值而是按下回车或CTRL+C,那么原来的值不会改变。
一般用不着把地址和命令名字分开。例如,用转储命令D察看100号地址的数据,那么这个命令可以用以下任一种形势输入:
D100
D 100
D。100
D,100
如果输入的命令中出现了错误,DEBUG将在下一行对着错误的位置标记出来,例如:
-s100 d 12
^Error
DEBUG的命令及功能如下:
* A[地址] 汇编命令
功能: 将指令直接汇编成机器码输入到内存中。
说明: 用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制, 用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,改语句被汇编到 CS:0100区域。
* C[源地址范围][目的地址]比较命令
功能: 比较两内存区域中的内容是否相同,若不同则显示其地址和内容。
* D[地址] 或D[起始地址][目的地址] 转储命令
功能: 以内存映象方式显示内存中的信息。
说明: 转储用左右两部分显示内存映象内容,左边以十六进制,右边以ASCII字符显示,所有不可打印字符用句号(。)表示。每行显示16个字节的内容,在第八和第九个字节之间有一个连字符 - 此命令隐含的段地址为DS的值。若未指定起始地址,则D命令从显示的最后一个单元的下一个单元开始显示,若以前没有使用给D命令, 则从初使化的段寄存器的内容,加上地址偏移量 0100H 开始显示。
* E[地址] [字节串) 修改内存命令
功能: 从指定的地址开始修改内存值。
说明: 若地址部分只输入偏移量,则 E 命令认为段包括在DS寄存器中。命令格式有两种:其一是用命令中包含的字节串替换从指定的地址开始的多个字节的内容;其二是命令后不跟字节串,则允许按顺序方式显示和修改字节,按下空格键为显示下一字节内容,若想修改,直接输入相应值。
* F[地址范围] [字节或字节串] 填写命令
功能: 将要填写的字节或字节串填入由地址范围指定的存储器中。
* G[=起始地址] [[断点]……] 执行命令
功能: 执行正在调试的程序,当达到断点时停止执行, 并且显示寄存器标志和下一条要执行的命令。
说明: 如果没有指定起始地址,那么当前指令地址由CS,IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行。如果指定断点,当指令到达指令地址时停止执行,并显示各寄存器标志位的内容和下一条要执行的命令,最多允许用户设定10个断点。
* H[数值][数值] 十六进制算术运算命令
功能: 分别显示两个十六进制数相加的和以及第一个数减去第二个数的差。
说明: 替用户完成简单的十六进制数的运算。
* I[端口地址]
功能: 从指定的端口输入并显示(用十六进制)的一个字节。
* L[地址][盘号:][逻辑扇区号][扇区数]
功能: 将一个文件或盘的绝对扇区装入存储器。
说明: 单个L命令能够装入的最大扇区数是 80H,其中盘号 0,1,2,3……分别代表 A,B,C,……出现读盘错,显示错误信息。
* M[地址范围][起始地址] 数据传送命令
功能: 把地址范围内的存储器单元的内容移到起始地址的指定地址中
说明: 传送期间,源区和目标区可以部分重叠;传送后源区域数据保持不变。
* N[盘号: ] [路径] [文件名] [扩展名]
功能: 定义操作文件名。
说明: 可同时定义两个操作文件,并将形成的文件控制块相应的设置在内存 CS:5C和CS:6C上,供以后的L和W命令操作之用。
* O[端口地址][数据] 输出命令
功能: 发送字节到指定的输出端口。
* P[=地址] [数据] 进程命令
功能: 将一个子程序调用指令,循环指令,中断指令或一个重复字符串指令,停止在下一条指令上。
说明: 在执行一条子程序调用指令,循环指令,中断指令或一个重复字符串指令时,发出P命令去执行有关指令,并且返回到要执行的下一条指令。P命令与T 命令有相同的句法。
* Q 退出命令。
* R[寄存器] 寄存器命令
功能: 一,显示单个寄存器的内容,并提供修改功能。 二,显示所有寄存器内容, 再加上字母标志位状态以及要执行的下一条指令。 三,显示8个标志位状态, 并提供修改功能。
* S[地址范围] [字符串]
功能: 在指定的地址范围内查找给定的字符串。
说明: 用来指定在地址范围内查找一个字符串,若找到则显示其地址, 否则直接显示DEBUG提示符。隐含地址为DS段值。
* T[=地址][指令条数] 跟踪命令
功能: 逐条跟踪程序的执行,每条指令执行后都将显示各寄存器的内容。
说明: 通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多条指令, 每执行一条指令之后,显示所有寄存器的内容和标志状态。
* U[起始地址]或者[地址范围]
功能: 将内存中的内容转换为汇编语句。
说明: 反汇编的字节数取决与用户的系统显示形式,以及在U命令中使用的可选项。
* W[地址] [盘符:] [起始扇区] [扇区数] 写盘命令
功能: 将修改过的数据写到磁盘上。
说明: 可以将指定内存地址开始的数据写在磁盘上,可以在没有指定参数, 或指定地址参数的情况下,将调试文件写在磁盘上。
如何在64位操作系统下使用debug命令
debug是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节,下面就让我教大家如何在64位操作系统下使用debug命令吧。
在64位操作系统下使用debug命令的方法debug命令在64位操作系统中是不能使用的。在命令提示符窗口输入:debug命令,就会弹出:不是内部或外部命令,也不是运行的程序或批处理文件。的出错提示。
这里需要下载两个程序,一个是debug.exe程序,另一个就是DOSBox程序。
首先需要安装DOSBox程序,双击打开安装程序?Next(下一步)。
默认和可选安装程序?Next(下一步)。
默认安装在系统盘(通常是C盘),如要更改路径点击Browse(浏览)?Install (安装)。
安装完毕,点击Close (关闭)。
然后将debug.exe文件保存在磁盘的根目录,如果是保存在C盘。
需要权限?点击 继续。
再打开已经安装好的DOSBox,输入以下命令:mount c c:\
c: ?按回车(Enter键)
电脑XP系统怎么使用debug查看内存和汇编指令
简单介绍下debug查看内存中的机器码,已经查看汇编指令的方法。
-r 参数用来查看CPU中寄存器的值,以及改变寄存器的值。
至于那些神马AX,BX,CX,DX的都不用说了,CS跟IP更不用说了,指向了要执行的下一条指令。
可以用-r cs或者-r ip来改变它们的值。如图:
这样我们就可以让CS:IP指向我们希望的指向内存地址,从而可能执行我们预先在该地址存放好的代码。
-D命令:用来查看内存中的值。比如:
如图:最左边的是内存的地址,用基地址:偏移量的方式给出,中间存放的是内存中的机器码,一行刚好15个字节,而最右边则是对这些数据敌对应的可显示的ASCII字符,对于没有的,则用.代替。所以如果想看一下,右边输出hello之类的 东西,则可以向指令里面写如这些字符的ASCII码。
-E命令:改写内存中的内容。上面已经说到了,下面我们来试试,用E改变CS:IP里面存放的指令。
如图:使用' ‘的格式就可以向里面输入字符了,右边出现了字符hello,所以我们可以认为中间的数据就是对应字符的ASCII码,我们之所以看到h是68,那是因为这是十六进制的数据,h真正的ASCII码应该是6*16+8=104,所以是吻合的。比如我们像内存里面写入:61(也就是6*16=97)
而0到9几个数字ASCII码的十六机制刚好是3x,也就是48+x.这点必须的搞清楚。
好,搞了这么长时间的E命令,我们在看看U命令,它用来查看机器码对应的汇编代码。比如:
可以看到十六进制的61对应的汇编还是61?所以我们可以用-e写入机器码,然后用-u来查看汇编指令。
-A:以汇编的形式向内存写入指令。比如:
还有一个命令就是-t,也就是执行,不多说了。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。