以 gdb 调试方式启动一个程序. 此时程序处于等待状态, 尚未运行
gdb <可执行程序文件路径>
# `tui` 可以启动一个交互式终端, 方便看代码调试
gdb -tui <可执行程序文件路径>
run
或
r
next *<源码行数>*
或
n
n 1
源码级别, 遇到函数 step into
step *<源码行数>*
或
s
s 1
汇编指令级别
stepi *<汇编指令行数>*
或
si
si 1
一行程序代码通常对应多个汇编指令, si
会把源码拆开, 执行下一条汇编指令.
continue
或
c
until
或
u
finish
break *<文件名:代码行数>*
break *<代码行数>*
break *<文件名:函数名>*
break *<类名::函数名>*
break *<函数名>*
break *内存地址 <--- 注意内存地址前需要 `*`
break <--- 在当前位置下断点
break <...> if *<condition>*
或
b <...>
# 删除指定 id 断点
delete *<断点编号>*
# 删除所有断点
clear
info breakpoints
或
info b