1.启动进程并调试:
#去广告
$gdb -q 可执行文件
#1.设置参数
$gdb 可执行文件
$run arg1 arg2
$------------------------------
$gdb --args 可执行文件 arg1 arg2
#2.查看多线程
$info threads
#3.查看某线程
$thread 线程number
2.跟踪已启动的进程:
$gdb 可执行文件 进程ID
3.调试core文件:
#许可core文件生成
$ulimit -c unlimited
$gdb 可执行文件 core文件
#查看调用堆栈
$bt
4.断点:
#打断点:
$b 函数名
$b 文件名:行数
#条件断点:
$b 文件名:行数 if 条件
#查看断点:
$info b
#删除断点:
$del 断点number
5.开始程序:
$r
6.查看变量:
$p 变量
$p *(指针类型 *)指针变量
#1.查看变量类型
$ptype 变量
$p {type} 变量/指针/地址
#2.查看局部变量
$info locals
7.跳出函数:
$f
8.跳出循环:
$u 行号
9.单步调试:
#单步调试,跳进函数
$s
#单步调试,跳出函数
$n
10.查看源文件:
#当前执行代码行
$l
#下一段代码行
$l +
#上一段代码行
$l -
#显示当前文件行数
$l start行号, end行号
11.调试时显示代码:
#解决问题Error opening terminal: xterm.
$ export TERM=vt100
$ export TERMINFO=/usr/share/terminfo
12.调整tui窗口:
#显示源代码窗口
$layout src
#显示汇编窗口
$layout asm
#显示源代码和汇编窗口
$layout split
#显示寄存器窗口
$layout regs
#寄存器窗口显示内容为浮点寄存器
$tuireg float
#存器窗口显示内容为普通寄存器
$tuireg general