Gdb 调试

 

GDB是一个由GNU开源组织发布的、UNIX/Linux操作系统下的、基于命令行的、功能强大的程序调试工具。

  1. 运行gdb。
  2. 进行调试分析。
  • 调试命令:
help            帮助
file       <程序名字>
r(run)      <程序运行>

断点:
b(break)     <行号>
b         <函数名称>
b         *<函数名称>
b         *<代码地址>
break 10 if size==100  条件断点
delete 删除所有断点
delete 3 删除标号为3的断点
clear N  除行N上面的所有断点
continue  继续运行程序直接运行到下一个断点


s         在源码处,相当于其它调试器中的 Step Into (单步跟踪进入)
n         在源码处,相当于其它调试器中的 Step Over (单步跟踪)

si        在汇编代码处 Step Into (单步跟踪进入)
ni   在汇编代码处 Step Over (单步跟踪)

n 1        走一步
n 3        走三步   

p(print)   打印变量值

display   打印汇编代码

i(info) 显示信息
q(quit) 退出

bt(backstack) 堆栈信息
f(frame)

set arg     设置程序入口参数
show args    显示设置的参数

finish/return  执行完本函数,返回上一层

call/print      调用函数
print var(和上面的不同) 显示被调试的语言中任何有效的表达式

格式支持:/x /d /u

x  按十六进制格式显示变量。 

d  按十进制格式显示变量。 

u  按十六进制格式显示无符号整型。 

o  按八进制格式显示变量。 

t  按二进制格式显示变量。 

a  按十六进制格式显示变量。 

c  按字符格式显示变量。 

f  按浮点数格式显示变量。 


print *a@10  a是一个数组,10个元素
  •  file name

  •  run name

  •  b
  •  b *func / b 行数

  •  p

  •  display

  •  i  r(查看寄存器的内容)

  •  bt

  • set arg / show args

未完待续! 

DeeLMind'Blog| 再坚持10十年就不信还不成大神!!!懂进攻-知防守--先正向-后逆向
原文地址:https://www.cnblogs.com/DeeLMind/p/6822264.html