首页 > 编程知识 正文

debug命令大全,eclipsedebug调试

时间:2023-05-03 13:59:49 阅读:21332 作者:3909

1.关于debug debug是dos、windows提供的实模式程序调试工具; 作用:查看cpu各寄存器的内容、内存情况、在机器码级别追踪程序的运行; 命令: debug 参数:     r    ->查看、改变cpu寄存器的内容;     d    ->查看内存中的内容;     e    ->修改内存中的内容;     u    ->将内存中的机器指令翻译成汇编指令;     t    ->执行一条机器指令;     a    ->以汇编的格式在内存中写入一条机器指令;   2.用r查看、改变cpu寄存器的内容 1)查看cpu寄存器内容 输入命令 debug 进入debug模式 debug 输入参数 r r 结果: 如上图所示; 可以看到各寄存器对应的值,例如:ax的值为0000、bx的值也是0000; 0740:1000 0000 ;表示cs:ip当前所指向的内存单元地址为0740:1000,该内存单元存放的机器码为0000;对应的汇编指令是 ADD [BX+SI],AL;   2)修改寄存器内容 例如:想要将cs:ip指向1000:0; 需要将cs的值改为1000H,ip的值改为0H; 命令:r 待修改的寄存器,enter键确定 r cs 会显示该寄存器的当前值,在冒号“:”后面输入新值即可,然后enter键确定; ip修改也一样; 如上图所示:修改完成后输入r查看,cs:ip被修改为1000:0;   3.用d查看内存信息 1)默认查看 命令: debug 参数: d 结果: 参数d后面不加 段地址:偏移地址 ,显示默认地址的内存信息; 每次显示128个内存单元的信息; 分为3部分;左边是内存单元的起始地址;中间是每个内存单元的值;右边是内存单元值对于的ASCII码信息,例如46表示F,74表示t;   2)查看特定地址的内存 命令: debug 参数:d 段地址:偏移地址 d 1000:0 结果: 可以看到,查看的是指定地址的内存信息; 如果再接着输入d,显示后续地址的内存信息,如上图所示,直接输入d显示的是从1000:80开始的内存信息,紧接上一次查询的地址;   3)范围查询 参数:d 段地址:偏移地址 结束偏移地址 d 1000:0 8 结果:   4.用e改写内存中的内容 1)一起修改 参数:e 段地址:偏移地址 内容1 内容2 ... 例如:将1000:0处开始修改内存信息为 123iLoveC++ e 1000:0 1 2 3 'i' "Love" "C++"   2)逐一修改 参数:e 段地址:偏移地址 会从目标地址开始依次显示每一个内存单元的值; 如果需要修改则输入修改的值,空格键确认;不需修改直接按空格键; 修改完成后enter键; 例如:从1000:10处开始修改内存信息为 123i   5.用u翻译内存中的内容为汇编指令 参数:u 段地址:偏移地址 u 2000:0 结果: 可以看到,内存中的机器码被翻译成了汇编指令;   6.用t执行指令 参数:t 如果要执行目标指令,需要将cs:ip执行目标指令的起始地址; 一次只执行一条指令,如需执行下一条指令需再次输入t; 例如:执行2000:0处的指令;     将cs设为2000;    ->r cs     将ip设为0;    ->r ip     执行第一条指令    ->t     执行第二条指令    ->t 可以看到执行了两条指令; 分别是修改寄存器ax和bx的值;   7.用a以汇编指令的形式修改内存 参数:a 段地址:偏移地址 从目标地址开始将编辑的汇编指令写入内存; 输入汇编指令 enter键确认; 不输入直接按enter键结束编辑; a 3000:0 结果:   8.用段寄存器作段地址 用debug的d命令查看内存信息时命令为:d 段地址:偏移地址; 例如:d 1000:0 用来查看从1000:0开始的内存信息; 如果想查看段寄存器ds所指向的地址:d ds:偏移地址; 具体操作如图: 段寄存器cs、ss也可以这样用;     d cs:偏移地址    ->查看代码段的信息;     d ss:偏移地址    ->查看栈段的信息; 其他命令:E、A、U中也可以使用段寄存器; 例如:编辑数据段命令  e ds:0      

转载于:https://www.cnblogs.com/ShiningArmor/p/11011306.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。