linux下使用GDB调试程序

本文详细介绍了如何在Linux系统中使用GDB调试C语言编写的程序。从编译带有调试信息的可执行文件,到加载GDB、设置输入参数、查看代码、设置断点、运行程序、显示及修改变量值,最后退出GDB,每个步骤都有清晰的指导。
摘要由CSDN通过智能技术生成

现有一c源文件“gdb-01.c”,下面用GDB调试该程序。

/*gdb-01.c*/
#include<stdio.h>

static int sum(int value);

int main(int argc, char *argv[])
{
    if (argc != 2)
    {
        printf("参数输入错误!\n");
        return -1;
    }

    int input = argv[1] - '0';
    int result = sum(input);
    printf("你输入的值为:%d,计算结果为:%d\n",input,result);
    return 0;
}

/*累加求和函数*/
static int sum(int value)
{
    int result = 0;
    int i = 0;
    for (i = 0; i < value; ++ i)   //该处有问题,需要debug出来
    {
        result += i;
    }
    return result;
}
  1. 首先用gcc编译“gdb-01.c”生成可执行文件test,为了能用gdb调试改程序,需要在编译时加入‘-g’选项。命令如下:
    $ gcc -o test gdb-01.c -g
  2. 加载程序。用下面的命令将可执行文件test加载到GDB中,并进入(gdb)模式:
    $ gdb test
  3. 设置输入参数。通常可执行文件在运行的时候需要输入参数,gdb中使用如下命令格式:”set args value1 value2 …”。例如,test中将一个参数(如3)传入程序:
    (gdb) set args 3
  4. 打印代码内容。命令list用于列出可执行文件对应源文件的代码,命令格式为“list 开始的行号”,然后每次按Enter键后顺序向下列出代码。
    (gdb) list 1
  5. 设置断点。b 命令在某一行设置断点,程序运行到断点的位置会中断。
    (gdb) b 24
  6. 运行程序。GDB在默认的情况下是不会让可执行文件运行的。此时,程序并没有真正运行起来,只是装载进了GDB中。要是程序运行需要输入run命令。
    (gdb) run 3
  7. 显示变量。在程序运行到第5步所设置的断点时,程序中断等待进一步指令。此时,可以进行一系列操作,其中,命令display可以显示变量的值。
    (gdb) display result #显示变量result的值
  8. 修改变量的值。用set命令。
    (gdb) set result = 6
    (gdb) c #继续运行
  9. 退出GDB。调试完程序后,使用q命令退出GDB。
    (gdb) q
    $ #返回用户模式

上面给出了一个简单的例子来演示GDB基本使用。至于GDB的常用命令,直接百度或google,能搜到一大堆,这里就不再赘述啦~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值