gdb的使用

gdb是linux下动态调试的工具,常见的动态调试工具主要有以下几个内容,我将结合gdb的命令进行介绍

1、启动

start

2、断点

b *地址
b 符号名    break <function> 在函数体入口处下断点。

3、单步

si: step in
源码单步:next

4、查看内存

x/[]i 对指定数量的指令进行反汇编
x/[]x 显示指定长度的数据   $rax  
x/[]s以字符串形式显示数据

x/10w $esp 相当于显示栈上40B的数据,即栈上10个空间的数据

除了以上常见的四点外,gdb的常见命令还有

  • set命令,常见的是set architecture,设置使用intel还是AT&T语法,更多可使用help set查看
  • bt (backtrace):打印出回溯的所有栈
  • disas反汇编命令,直接disas是反汇编当前函数
    • disas /r (显示汇编指令对应十六进制值)
    • disas /m (如果有源码,显示对应行源码)
  • help命令,以上的命令都可以查到相关说明

相关插件
peda:https://github.com/longld/peda
libheap:https://github.com/cloudburst/libheap
以上只是一下gdb常见命令,更多可用help命令去查看,目前只想到这些,以后在补充