Linux调试器-gdb的使用

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;
}
  1. 如图第二行所示,加上 -g,我们才能在二进制程序中找到debug文件,才能进行gdb调试
    在这里插入图片描述

  2. 显示如下图所示,证明我们成功进入调试模式
    在这里插入图片描述

  3. 调试模式下不会显示代码,我们可以使用 list/l 调试命令来显示binFile源代码。 请添加图片描述

  4. b和info b:打断点和查看断点信息请添加图片描述
    请添加图片描述

  5. s:逐语句(会进入函数内)请添加图片描述

  6. p:查看变量值(临时)请添加图片描述

  7. display:常显示变量值
    请添加图片描述

  8. undisplay: 取消常显undisplay

  9. until: 跳转到指定行数
    请添加图片描述

  10. finish :结束函数,会带返回值

请添加图片描述

以上您就掌握简单gdb使用于调试了

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值