使用gdb调试程序

使用gdb调试程序

背景

首先,我们需要先了解以下内容:
1.程序的发布方式有两种,debug模式和release模式
2.Linux gcc/g++出来的二进制程序,默认是release模式
3.要使用gdb调试,必须在源代码生成二进制程序的时候加上-g选项

什么是gdb

gdb是一个由gnu开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。

使用流程

1.输入gdb binFile进入调试
2.调试命令解释

list 行号:显示binFile源代码,接着上次的位置往下列,每次列10行
list 函数名:列出某个函数的源代码
r或run:运行程序
n或next:单条执行
s或step:进入函数调用
break(b)行号:在某一行开头设置断点
info break:查看断断点信息
finsh:执行到当前函数返回,然后停下来等待命令
print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量的值
set var:修改变量的值
continue(c):从当前位置开始连续而非单步执行程序
run(r):从开始连续而非单步执行程序
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoints:禁用断点
info(或i) breakopints:参看当前设置了那些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
breaktrace(bt):查看各级函数调用及参数
info(i) local:查看当前栈局部变量的值
quit:退出gdb
CTRL + d:退出gdb

注意:使用gdb调试的程序编译时一定要用-g,不然会出现No symbol table is loaded. Use the “file” command.的问题。

猜你喜欢

转载自blog.csdn.net/qq_43825377/article/details/112689133