文章目录
Linux调试器-gdb的使用
背景
- 程序的发布方式有两种,debug模式和release模式
- Linux gcc/g++ 出来的二进制文件,默认是release模式
- 要想使用gdb调试,必须在将源程序生成二进制程序的时候加上-g
使用
- q,ctrl+d:退出调试
- list/ l 行号:显示binFile源代码,调试模式下具有指令记忆功能,紧接着回车会接着上次的位置往下列,每次列10行
- l/list 函数名:列出某个函数的源代码
- r或run: 运行程序
- b 行号:在某一行设置断点
- b 函数名:在某个函数开头设置断点
- info b :查看断点信息
- d 断点编号:删除断点
- n或next :逐过程
- s或step :逐语句
- p 变量名:查看变量的值
- p &变量名: 查看地址
- display 变量名:跟踪查看变量,每步都会显示变量的值
- undisplay 编号:取消常显示
- until 行号:跳转到(行号)行
- finish:当进入函数体后,finish会直接结束函数,显示返回值
- c:实现断点之间的跳转
- disable 编号(断点):禁用断点
- enable 编号(断点):启用断点
调试演示代码mycode.c
#include<stdio.h>
int addToTop(int top)
{
int res = 0;
int i = 1;
for(;i <= top; ++i)
{
res += i;
}
return res;
}
int main()
{
printf("debug begin\n");
int top = 100;
int sum = addToTop(top);
printf("sum: %d\n",sum);
return 0;
}
-
如图第二行所示,加上
-g
,我们才能在二进制程序中找到debug文件,才能进行gdb调试
-
显示如下图所示,证明我们成功进入调试模式
-
调试模式下不会显示代码,我们可以使用 list/l 调试命令来显示binFile源代码。
-
b和info b:打断点和查看断点信息
-
s:逐语句(会进入函数内)
-
p:查看变量值(临时)
-
display:常显示变量值
-
undisplay: 取消常显
-
until: 跳转到指定行数
-
finish :结束函数,会带返回值
标签:函数,int,gdb,Linux,断点,调试,调试器 From: https://blog.csdn.net/2401_86681860/article/details/141094169以上您就掌握简单gdb使用于调试了