Linux C/C++编程之(十一)gdb调试

本文详细介绍了Linux环境下使用gdb进行C/C++程序调试的方法,包括gdb的基本命令、设置断点、查看运行时数据、自动显示等功能。通过实例解析了如何启动gdb、设置运行参数、调试代码以及使用条件断点等关键操作,帮助开发者提升调试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

在这里插入图片描述

二、使用场景

使用场景el-

  • 程序编译无误,但是有逻辑错误
  • 使用文字终端(shell),实现一个单步调试的功能
  • 生成可执行文件之前必须加参数-g
gcc hello.c -o hello -g

三、gdb调试

  • gdb + 可执行文件(如:gdb hello)启动gdb调试
  • I(list)–>列出文件的代码清单
    • l + 行号(132)–>代码从第32行开始显示
  • b(break)–>设置断点
    • b + 行号(b12)–>在第12行设置断点
    • b + 行号(2)+ 条件(if i = 5)–> 在第2行设置断点,只有 i 等于5时生效
  • info b(break)–>查看断点信息
  • r(run)–>运行程序
  • start -->单步执行,运行程序,停在第一行执行语句
  • disable/enable + 断点号 -->设置断点是否有效
  • d(delete)+ 断点号 -->删除指定断点号对应的断点
  • p(print)+ 变量名 -->打印变量值
  • display + 变量名 -->追踪变量
    • 之后每执行一步,该变量值都会被打印出来
  • undisplay + 变量名编号 -->取消跟踪
  • n(next)–>下一行(不会进入到函数体内部)
  • s(step)–>下一步(会进入到函数体内部)
  • ptyte + 变量名 -->查看变量的类型
  • finish -->结束当前函数,返回到函数调用点
  • set -->设置变量的值 set var n=100
  • q(quit)–>退出gdb

四、gdb详解

1. 简介

在这里插入图片描述
GDB(GNU Debugger)是GCC的调试工具。其功能强大,主要帮忙完成下面四个方面的功能:

1)启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。

2)可让被调试的程序在你所指定的调置的断点处停住(断点可以是条件表达式)。

3)当程序被停住时,可以检查此时你的程序中所发生的事。

4)动态地改变你程序的执行环境。

2. 生成调试信息

一般来说GDB主要调试的是C/C++的程序。
在这里插入图片描述
要调试C/C++的程序,首先在编译时必须要把调试信息加到可执行文件中。

//fun.c

#include <stdio.h>     
#include "head.h"      

int sum(int a, int b)  
{
   
    
    printf("welcome call %s, %d + %d = %d\n",__FUNCTION__, a, b, a + b);
    return a + b;      
}
 
int mul(int a, int b)
{
   
   
    printf("welcome call %s, %d * %d = %d\n", __FUNCTION__, a, b, a * b);
    return a * b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是管小亮

一口吃掉你的打赏,嗝~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值