文章目录
- 注意
- 1、在gcc编译过程中一定要加入选项 `-g`;
- 2、只有在代码处于`运行`中在`暂停`状态时才能查看变量值;
- 3、设置断点后,程序在指定行之前停止。
- 总结
- 主要内容
- 1、将当前目录下的`myself.h`文件移动到`/usr/include/`文件夹下
- 2、搜索 `/usr/include/my*`路径下 以`my`开头的所有文件
- 3、gdb调试代码
- 3.1 进入gcb编译模式
- 3.2 查看源代码 `l` (是小写的L)
- 3.3 设置断点 Break `b`
- 3.3.1 设置行断点
- 3.3.2 条件断点
- 3.3.3 设置函数断点
- 3.3.4 断点后按照预设的变量值运行
- 3.4 查看设置的断点`info b`
- 3.5 删除断点 Delete `d 断点号`
- 1.指定单个断点
- 2.所有点断 `d`
- 4、运行 调试 Run `r`
- 4.1 直接运行 到断点处停
- 4.2 单步执行 Next `n` 并 查看值的变化Print `p`
- 4.3 Continue 到断定后,继续往下运行`c`
- 4.4 Step 跳入函数内部进行单步 `s`
- 5、查看当前变量的值 `p 变量名`
- 6、退出gdb调试 Quit `q`
- 每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。
注意
1、在gcc编译过程中一定要加入选项 -g
;
2、只有在代码处于运行
中在暂停
状态时才能查看变量值;
3、设置断点后,程序在指定行之前停止。
总结
常用命令
l 查看源代码
b 行号 或函数名或f条件(==10)
info b 查看断点
d 断点号 d 无 删除所有断点
r 运行
p 变量名 查看变量值
set var变量名=变量值_新
S 进入函数内单步
n 不进入函数内单步
C 继续运行
q 退出gdb
主要内容
1、将当前目录下的myself.h
文件移动到/usr/include/
文件夹下
sudo mv myself.h /usr/include/
2、搜索 /usr/include/my*
路径下 以my
开头的所有文件
ls -l /usr/include/my*
3、gdb调试代码
- gcc 语法错误
- gdb 算法错误
3.1 进入gcb编译模式
要使用gdb编译器调试代码,执行gcc
时要用操作-g
gcc f_gdb.c -g -o f_gdb
相当于是给了这个文件1个标注,这样才能使用下面这条语句调试
gdb f_gdb
3.2 查看源代码 l
(是小写的L)
1、每次查看10
行代码
l
2、 也可以指定行号,查看第Number
行 前后共10行的代码
l Number
3.3 设置断点 Break b
3.3.1 设置行断点
假设我要在这行设置断点,fun()
就不会被执行
b 13
3.3.2 条件断点
b 行数 if 判断语句
运行到 i=10时,再执行断点命令
3.3.3 设置函数断点
b 函数名
3.3.4 断点后按照预设的变量值运行
set var b=4
多了 4
3.4 查看设置的断点info b
info b
断点在文件f_gdb的main中 第13行
3.5 删除断点 Delete d 断点号
1.指定单个断点
d 1
2.所有点断 d
d
4、运行 调试 Run r
4.1 直接运行 到断点处停
r
停在该处,此时该处还未执行
4.2 单步执行 Next n
并 查看值的变化Print p
n
4.3 Continue 到断定后,继续往下运行c
c
此时停在了第2个断点处
4.4 Step 跳入函数内部进行单步 s
s
5、查看当前变量的值 p 变量名
p varNum
6、退出gdb调试 Quit q
每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。