目录
一.背景
二.gdb的常用的操作介绍
小技巧:gdb会记住上一次的命令,按回车即可打出上次的命令。
1.看代码
2.打断点
3.删断点
4.禁用与开启断点
5.查看断点信息
6.调试
7.调试
8.查看变量
9.运行至某行
10.打印变量值
11.从一断点直接运行带下一个断点处
12.更改变量值
13.执行到当前函数返回,然后挺下来等待命令
14.退出gdb
一.背景
程序的发布方式有两种,debug模式和release模式
Linux gcc/g++出来的二进制程序,默认是release模式
要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项
如:有一文件test.c, 正常我们形成可执行程序是 gcc -o mybin test.c
此操作形成的mybin是release模式,如果想要形成可执行程序mybin是debug模式则要写成
gcc -o mybin test.c -g
二.gdb的常用的操作介绍
小技巧:gdb会记住上一次的命令,按回车即可打出上次的命令。
1.看代码
l 行数 。一般用 l 0来看代码
效果:
2.打断点
b 行数/b 函数名/ b 文件名:行数/b 文件名:函数名。每一个断点都有编号,每次编号只出现一次。
3.删断点
d 断点编号
4.禁用与开启断点
enable 断点编号:开启该断点编号的断点
disable 断点编号:禁用该断点编号的断点
5.查看断点信息
info b
6.调试
n:逐过程(如VS的F10)
s:逐语句(会进函数,如VS的F11)
7.调试
r
8.查看变量
display 变量名/变量地址。此操作后,每次 n/s 都会打印 变量名/变量地址,要取消则:
undisplay 变量名/变量地址。
9.运行至某行
until 行数
10.打印变量值
p 变量名
11.从一断点直接运行带下一个断点处
c
12.更改变量值
set var 变量名 = 想要更改的值/set 变量名 = 想要更改的值
13.执行到当前函数返回,然后挺下来等待命令
finish
14.退出gdb
quit/ctrl+d