1.13|1.14|1.15|1.6、GDB调试
- 1.13、GDB调试(1),GDB调试(2)
- 1. 什么是GDB
- 2. 准备工作
- 3. GDB命令—启动、推出、查看代码
- 实际操作
- ①用list查看代码
- 1.15、GDB调试(3)
- 1. GDB命令—断点操作
- 实际操作
- ①对当前文件布置断点操作
- ②对非当前文件布置断点操作
- ③设置无效断点和有效断点
- ④条件断点
- 1.16、GDB调试(4)
- 1. GDB调试—调试命令
- 实际操作
- ①自动变量
1.13、GDB调试(1),GDB调试(2)
1. 什么是GDB
2. 准备工作
3. GDB命令—启动、推出、查看代码
实际操作
- 输入这两条命令,第一条用于生成调式代码,第二条运行调试代码
test.c
需要与被调试的代码test
在同一个目录下list
默认显示main
函数
①用list查看代码
list 行号
,显示行号上下文代码
list 函数名
,表示显示函数名上下文的代码
list 文件名:行号
查看非当前文件的代码第10
行
list 文件名:函数名
查看非当前文件代码的select
函数
- 设置一次查看的代码文件行数的大小
1.15、GDB调试(3)
1. GDB命令—断点操作
实际操作
①对当前文件布置断点操作
- 给当前文件第
9
行打上断点break 9
- 给当前文件的
main
函数打上断点break main
- 显示当前断点的情况
info break
②对非当前文件布置断点操作
- 给文件
bubble.cpp
的第11加上断点break bubble.cpp:11
- 给文件
bubble.cpp
的bubbleSort
函数加上断点break bubble.cpp:bubbleSort
- 展示断点情况
③设置无效断点和有效断点
- 无效的断点在进行断点调试的时候没有不起作用
- 设置有限断掉
disable 断点编号
- 设置有效断点
enable 断点编号
④条件断点
1.16、GDB调试(4)
1. GDB调试—调试命令
实际操作
- 如果循环中有断点,那么
until
将无法跳出循环,此时我们需要删除del 断点
或者disable 断点
- 如果想要使用
finish
跳出函数体,那么在当前执行的语句的下面也不能有断点
①自动变量
display 变量名
,每次执行一次代码自动输出自动变量的值set var
直接修改变量的值,看哪个不顺眼改哪个