目录
- 🌈前言
- 🌷1、debug与release
- 🌸2、gdb选项
🌈前言
本篇文章进行调试器gdb的学习!!!
🌷1、debug与release
debug会生成需要调试的信息,release不会生成
-
程序的发布方式有两种,分别是:debug模式和release模式
-
Linux中gcc/g++编译出来的二进制程序,默认是release模式
-
使用gdb进行调试,需要编译出来的二进制程序是debug模式的,需要加-g选项
-
debug模式下的二进制程序是比release大的,多了调试的符号
🌸2、gdb选项
格式:gdb binFile(debug模式下的二进制可执行文件)
调试命令:
-
quit 或 ctrl + d:退出gdb调试
-
r 或 run:运行程序,遇到断点会停下来
-
list 或 l [行号]:显示binFile源代码,连续按回车,会接着上次显示的代码继续显示,每次十行
-
list 或 l [函数名]:列出某个函数的源代码
-
n 或 next:逐过程,跳过函数执行
-
s 或 step:逐语句,会进入函数调用
-
b 或 break [行号]:在某一行设置断点
-
b 或 break [函数名]:在某个函数开头设置断点
-
info b 或 break:查看已经打的断点的信息
-
p 变量:打印变量的值
-
set var:修改变量的值
-
display [变量名]:跟踪查看一个变量,每次停下来都显示它的值 (监视器)
-
undisplay [编号]:取消对先前设置的那些变量的跟踪
-
finish:执行当前函数返回,然后停下来等待信息
-
until X行号:跳至X行
-
continue 或 c:从当前位置开始连续而非单步执行程序(跳到下一个断点处)
-
breaktrace(或bt):查看各级函数调用及参数
-
delete breakpoints:删除所有断点
-
delete breakpoints [n]:删除序号为n的断点
-
disable breakpoints:禁用断点
-
enable breakpoints:启用断点
-
info 或 i [locals]:查看当前栈帧局部变量的值
如何理解:和windows IDE(vs2019Debug对应)
部分指令思维导图: