Linux C编程(2) 使用GDB调试入门

来源:互联网 发布:顺丰科技java笔试 编辑:IT博客网 时间:2020/02/23 12:27

此例参考《Linux C从入门到精通》

一、示例程序

程序功能:输入年月日后,判断此日为此年中第几日。

文件名为year.c

#include <stdio.h>int main(){        int day, month, year, sum, leap;        printf("\nplease input year, month, day\n");        scanf("%d, %d, %d", &year, &month, &day);        switch(month)        {        case 1:sum = 0;break;        case 2:sum=31;break;        case 3:sum=59;break;        case 4:sum=90;break;        case 5:sum=120;break;        case 6:sum=151;break;        case 7:sum=151;break;        case 8:sum=212;break;        case 9:sum=243;break;        case 10:sum=273;break;        case 11:sum=304;break;        case 12:sum=334;break;        }        sum = sum +day;        if(year%400 == 0 || (year%4==0&&year%100!=0))                leap=1;        else                leap=0;        if(leap == 1&&month>2)                sum++;        printf("It is the %dth day\n", sum);        return 0;}

二、编译程序加入调试信息

      添加g选项,加入调试信息。

gcc -g -o year.exe year.c

三、调试实例

gcc -g -o year.exe year.c

1.启动GDB
    gdb ./year.exe

    如果没有安装GDB,在Ubuntu下执行命令安装GDB
    apt-get install gdb

2.设置断点
    break 行号
    break 22

3.开始调试
    输入命令run

4.输入
    2013,7,26
4.查看某变量的值
    print 变量名

    print sum
    会显示出
    $1 = 151
    $1表示是第几次使用print命令,151是变量的值

5.单步执行
    命令为next
    我们再执行print命令,看看sum变成了多少。
    $2 = 177
    day为26
    151+26=177

四、实例截图