gdb笔记

$ gcc -g -o test test.c        --加-g选项查看调试信息 $ gdb ./test
(gdb) l                    --用l(list)显示我们的源代码
1 #include <stdio.h>
2
3 int main()
4 {
5 int i=0;
6
7 scanf("%d",i);
8 printf("i=%d\n");
9 return 0;
10 }
(gdb) b 7              --用b(break)设置断点
Breakpoint 1 at 0x400543: file test1.c, line 7.
(gdb) r                  --用r(run)运行,直到断点处
Starting program: /home/etk/cpp/test1
Breakpoint 1, main () at test1.c:7
7 scanf("%d",i);
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6_3.5.x86_64
(gdb) p i               --用p(print)打印变量i的值[看到没,这里i的值是0哦      
$1 = 0
(gdb) n                 --用n(next)执行下一步
1
Program received signal SIGSEGV, Segmentation fault.
0x004e3d45 in _IO_vfscanf_internal (s=0x31,
    format=0xffffffff <Address 0xffffffff out of bounds>, argptr=0x0,
    errp=0xb) at vfscanf.c:1772
1772 *ARG (unsigned int *) = (unsigned int) num.ul;
(gdb) c                 --用c(continue)继续执行
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) q                --退出gdb 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值