GDB调试命令(二)---反汇编相关

       将可执行程序用gdb program_name调用到内存中后,就可以利用gdb的反汇编命令调试程序了。常用命令如下:

       (1)设置反汇编的代码为intel格式

       gdb默认反汇编为att格式的指令。可以通过show disassembly-flavor查看。如果习惯intel格式的,用命令

       set disassembly-flavor intel设置。

       (2)反汇编命令disas/disass/disassemble

       功能:将内存中的机器码程序以指令助记符的形式显示出来。

       格式: disas/disass/disassemble 函数名/起始地址[,结束地址]

       例如:

       disas main,显示main函数对应的汇编代码 

       (3)info line

       功能:查看某个line的相关信息。

       格式:info line 函数名/*内存地址

       说明:如果参数为函数名,则显示该函数在源文件中的行号及在内存中的起始地址和结束地址。例如:

        info line main输出为:Line 36 of "bomb.c" starts at address 0x401050 <main> and ends at 0x40106b <main+27>.

       如果参数为*内存地址,则显示该内存地址的指令对应的语句所在的函数在源文件中的行号及在内存中的起始地址和结束地址。例如:

       info line *0x401053输出为:Line 36 of "bomb.c" starts at address 0x401050 <main> and ends at 0x40106b <main+27>.

       (4)r 开始/重新执行  r means run

       (5)b设置断点 b means break

       格式:b *内存地址

        delete:删除所有断点

        delete num:删除编号为num的断点 

        info break:列出所有断点

       (6)ni 单步步过,相当于debug命令中的p

       (7)si 单步步入,相当于debug命令中的t

       (8)finish 执行到返回

       (9)display 显示某寄存器的值

       格式:display /x $寄存器名字。例如:display /x $eax

       (10)x查看内存单元

       格式:x  /nfu 内存地址 x means examine

       说明:
       n表示要显示的内存单元的个数
       f表示显示方式, 可取如下值:
       x 按十六进制格式显示变量。
       d 按十进制格式显示变量。
       u 按十进制格式显示无符号整型。
       o 按八进制格式显示变量。
       t 按二进制格式显示变量。
       a按十六进制格式显示变量。
       i 指令地址格式。
       c 按字符格式显示变量。

       s 按字符串格式显示变量。
       f 按浮点数格式显示变量。
       u表示一个地址单元的长度,其中:
       b表示单字节,
       h表示双字节,
       w表示四字节,
       g表示八字节。

    (11)p查看变量值

      格式: p 变量名

      如果要查看变量的地址,用p &变量名 



 

  • 17
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值