1、前期准备
- gcc编译的时候要带参数-g,编译出来的可执行文件才带断点信息,否则无法断点;
- gcc -g xxx.c -o xxx.out // xxx.c为源文件,.out为输出可执行文件名字
2、几条命令
- list
- 简写为l
- 查看源代码,默认为main函数文件
- l xxx.c:20,则是查看xxx.c的第20行代码
- l xxx.c:main,查看xxx.c的main函数
- 再次执行则是显示后续的内容
- break n
- n为代码行号,如break 37,可简写为b 37
- 也可以跟条件,如:break 37 if xxx=xxx;
- 行号也可以用函数名来代替,如break main,在main函数处打断点
- delete
- info breakpoints
- start
- run
- next
- step
- 单步执行递进,如果是函数则进入函数体内部,如果没有则下一步
- finish
- continue
- 简写为c,继续执行,如果有断点则一直到下一个断点位置
- print
- set var
- ptype
- display
- 追踪变量值,display a,则为显示变量a的值,每次执行都会显示
- 可重复添加,显示追踪的全部值
- undisplay
- 取消跟踪变量,display n,n为追踪变量的编号
- u
- quit
- set follow-fork-mode
- parent —> 跟踪父进程
- child —> 跟踪子进程