*** glibc detected *** double free or corruption (fasttop)

在执行一个程序时,出现如下错误: 
***  glibc  detected  ***  double  free  or  corruption(fasttop):***
 
解决方法:
 
1.该错误的意思是:对一个地址先后进行两次free()操作就会引起这种错误代码,如果是自己编写的代码,就仔细地检查一下代码;
 
g_free(p=g_malloc(sizeof(int)));
g_free(p);
上面的就是重复释放。
 
2.如果是你下载的软件,那么出现这样的情况通常是因为版本不匹配。
 
3.设置MALLOC_CHECK_环境变量再运行程序,呵呵,错误信息消失。
    MALLOC_CHECK_=0  ./myprogram 
 
 glibc 可以执行附加的内部数据健全检查,从而在尽可能早的时候发现和保护数据被破坏。在默认的情况下,当被破坏的数据被发现时,与以下相似的错误信息会被显示在标准的错误输出上(如果 stderr 没有打开,会被记录在 syslog 中): 
 
*** glibc detected *** double free or corruption: 0x0937d008 *** 
 
在默认的情况下,产生这个错误的程序也会被中止。但是,这(以及是否产生错误信息)可以通过环境变量 MALLOC_CHECK_ 来控制。以下的设置是被支持的: 
 
不产生错误信息,也不中止这个程序 
 
产生错误信息,但是不中止这个程序 
 
不产生错误信息,但是中止这个程序 
 
产生错误信息,并中止这个程序 
 
备注 
如果 MALLOC_CHECK_ 被设置为除 以外的值,这会使 glibc 进行更多的检查并可能影响到系统的性能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值