启动
调试正在运行的进程
SIGPIPE
- 调试过程可能会因为 SIGPIPE 停止,可使用如下命令解决:
1
| (gdb) handle SIGPIPE nostop noprint pass
|
结束调试
流程控制
break
- 当变量 counter 的值为 100 时设置断点
1
| (gdb) break main.c:10 if counter == 100
|
tbreak
run
- 如果是通过
gdb <可执行文件> 的方式,可使用如下命令让程序运行起来:
或者:
continue
或者:
step
或者:
next
或者:
until 👍
finish 👍
查看
print
查看变量
修改长度限制 👍
字符串变量的长度可能会超过默认长度,如何查看完整的字符串?
1 2
| (gdb) show print elements Limit on string chars or array elements to print is 200.
|
1
| (gdb) set print elements 1000
|
1
| (gdb) set print elements 0
|
info
查看当前函数的参数
查看寄存器
查看所有线程
修改
修改变量的值
1
| (gdb) set variable flag = 1
|
多线程
获取所有线程的堆栈信息
1
| (gdb) thread apply all bt
|