---------------------------- 终端使用 -------------------------------------------------------
#调试运行中的程序
#获取进程ID命令: ps -ef|grep 替换程序名称 |grep -v grep | awk '{print $2}';
gdb -pid 进程ID(pid);
#调试程序
gdb 程序名
---------------------------- gdb内部使用 -------------------------------------------------------
#退出
q
#查看运行中的程序(执行到哪里了)卡在哪里
bt 或者 where
#单文件-打断点,默认main函数所在的文件
b 行号
#多文件-打断点; 备注:文件名有相对路径
b 文件名:行号
#多文件-打断点-函数
b 文件名:函数名
#在循环中,设置当变量i = N值时,停下来
b if 变量名 = 期望值
#查看设置的所有断点位置
info b
#查看变量名值
print 变量名
p 变量名
#运行程序
gdb 程序
#查看当前代码所在位置的前后5行,一共10行
list 或者 l
#查看指定行数
l 行数
#指定文件,且行数
l 文件名:行数
#结束当前函数体
finish 或 f
#运行代码,下一行
s
#跳出当前函数
n
#继续执行,前往下一个断点
c
#打印字符串过长,gdb默认打印200个字符
#1.关闭长度限制
set print elements 0
#2.字符串指针,指定位置开始打印显示
指针+长度
#显示结构体值
info fields 结构体对象
#打印结构体值
p 结构体对象.成员变量
#运行程序,并给参数
r 参数1 参数2 参数3..
run 参数1 参数2 参数3..