万年历程序debug遇到的奇怪问题之解(比较弱)

记录下来只为后续方便。

原来GDB中打印出的的语句并没有立即执行,要等到下一条才能执行。所以之前的错误都是因为其实还没有真正初始化导致。

再调试时,结果如下:

(gdb) set args 2010 12 2
(gdb) break main
Breakpoint 1 at 0x80486f3: file calendar.c, line 120.
(gdb) r
Starting program: /home/wupeng/programe/linuxc/a.out 2010 12 2

Breakpoint 1, main (argc=4, argv=0xbffff394) at calendar.c:120
120        uint16 year = 0;
(gdb) s
121        uint8 month = 0;
(gdb)
122        uint16 day = 0;
(gdb)
123        uint32 days = 0;
(gdb) print year month
A syntax error in expression, near `month'.
(gdb) print year
$1 = 0
(gdb) print month
$2 = 0 '/000'
(gdb) print day
$3 = 0

上面看来,执行已是OK,所以夗了一个比较弱智的错误.

你可能感兴趣的:(debug)