gdb 学习
gcc -g 添加调试信息到可执行文件中
list 列出代码
break 设置断点
info break 查看断点
n 单条语句执行
c 继续运行程序
p x 打印变量 x 的值
bt 查看函数堆栈
finish 退出函数
shell command 运行shell程序
set args 指定运行时参数
show args 查看设置好的参数
set environment varname [=value] 设置环境变量
show environment 查看环境变量
set print element <number-of-elements> 设置显示数组的长度
show print elements 显示print element 的值
调试已运行的程序
gdb pid 或 attach detach
info program 查看程序的运行 进程号
断点
break ...if ...
观察点
watch <expr> expr变化时停住程序
rwatch <expr> expr被读时停住程序
awatch <expr> expr被读写时停住程序
info watchpoints 列出观察点
clear 清楚所有停止点
delete [breakpoints][range...] 删除断点
condition <bnum><expression> 修改断点号为bnum的停止条件为expression
condition <bnum> 清楚断点号为bnum的停止条件
ignore <bnum><count> 忽略断点停止条件count次
commands [bnum] 为断点设置命令
线程
info threads 查看线程信息
break <linespec> thread <threadno> linespec 指定源程序行号
栈
backtrace 显示栈信息
frame
info fram 查看栈层的信息
数组
p *array@len 打印数组
examine 查看内存
display 自动显示
signal 产生信号量