Linux GDB调试段错误方法(Segmentation fault)

暂时只简单写一下步骤:

1,gcc -g test.c -o test                       -- 编译时需要加入 -g参数

 

2,ulimit -c unlimited     设置core文件无限大小;我的开发环境不设置这个,则无core文件生成

 

3,运行./test 生成core文件(会在程序运行的目录下生成)     --有些linux系统是生成 core.xxx    (xxx就是你执行的程序的pid)

 

4,调试 gdb ./test core  

 

5,使用 bt 指令查看具体段错误位置

(gdb) bt
#0  malloc_consolidate (av=av@entry=0xb7639420 <main_arena>) at malloc.c:4159
#1  0xb7500a09 in _int_malloc (av=av@entry=0xb7639420 <main_arena>, bytes=bytes@entry=65548)
    at malloc.c:3425
#2  0xb75029d8 in __GI___libc_malloc (bytes=65548) at malloc.c:2893
#3  0x0804c39d in ?? ()
#4  0x08052cb3 in ?? ()
#5  0x08052998 in ?? ()
#6  0x0805dc75 in ?? ()
#7  0x0805d54c in ?? ()
#8  0x0805d402 in ?? ()
#9  0x08059ac6 in ?? ()
#10 0x080578b5 in ?? ()
#11 0x08057d81 in ?? ()
#12 0x0805860c in ?? ()
#13 0x0804a689 in ?? ()
#14 0xb74a5af3 in __libc_start_main (main=0x804a5dd, argc=1, argv=0xbfa92a34, init=0x8062b50, 
    fini=0x8062bc0, rtld_fini=0xb77d9300 <_dl_fini>, stack_end=0xbfa92a2c) at libc-start.c:287
#15 0x0804a501 in ?? ()

6,frame 4 (对应的数字) 查看对应具体某个位置相关信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值