1
调试步骤:
- 启动调试:gdb 可执行程序
- 查看源代码:l (L的小写;只写l的话就只查看可执行程序里包含main.c的文件)
- 如果想查看其他的文件:l 其他文件:查看的文件第几行
l 其他文件:函数
想查看后续的内容按l (默认显示10行)(回车,重复上面的命令)
- 如果想查看其他的文件:l 其他文件:查看的文件第几行
- 设置断点:
- break 想设置的断点行数 (b 想设置的断点行数)
- 设置条件断点:b 想设置的断点行数 判断条件
(在15行设置一个断点,在该断点停下的条件是变量i等于15) - 查看断点信息 info b (i b)
(Enb 表示当前断点是否可用,可用为y,不可用为n)
- break 想设置的断点行数 (b 想设置的断点行数)
- 开始调试:start (不过只执行一步)
- 单步调试:n
- 执行到断点:c
- 进入到函数体内部:s
- 查看想要查看函数体的源代码:l (注意如果其中有中文,则是乱码)
- 查看对应变量的值:p 变量名
- 查看类型:ptype 变量
- 追踪变量的值:
- display 变量
- 去除追踪变量: undisplay 变量编号
- display 变量
- 跳出单次循环:u (比如你进入了一个循环内部,通过u就可以直接跳出循环)
- 跳出当前函数(从进入的函数体内部跳出来):finish(如果你进入的函数体里有断点,那么不会让你跳出来, 需要删除相应的断点。)
- 删除断点:d 断点编号
- 设置变量的值:set var 变量=值
- 直接运行程序:run (r;遇到断点就会停止)
- 退出:quit
- 查看源代码:l (L的小写;只写l的话就只查看可执行程序里包含main.c的文件)