免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 24750 | 回复: 17
打印 上一主题 下一主题

[求助]*** glibc detected *** double free or corruption (!prev): 0x08207308 *** [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-26 15:05 |只看该作者 |倒序浏览
*** glibc detected *** double free or corruption (!prev): 0x08207308 ***
请问0x08207308表示什么意思。是出错的内存地址吗?怎么才能知道是哪一句出了错?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2007-03-26 15:11 |只看该作者
gdb 之~
然后 bt
或者 ltrace 也行。

论坛徽章:
0
3 [报告]
发表于 2007-03-26 15:25 |只看该作者
原帖由 flw 于 2007-3-26 15:11 发表
gdb 之~
然后 bt
或者 ltrace 也行。

怎么用?大概说说呗。没用过ltrace

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2007-03-26 15:39 |只看该作者
原帖由 源方 于 2007-3-26 15:25 发表

怎么用?大概说说呗。没用过ltrace

man

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-08-10 06:20:00
5 [报告]
发表于 2007-03-26 15:51 |只看该作者
http://www.redhat.com/docs/manua ... lease-notes/as-x86/

glibc

    *

      红帽企业 Linux 4 提供的 glibc 可以执行附加的内部数据健全检查,从而在尽可能早的时候发现和保护数据被破坏。在默认的情况下,当被破坏的数据被发现时,与以下相似的错误信息会被显示在标准的错误输出上(如果 stderr 没有打开,会被记录在 syslog 中):

      *** glibc detected *** double free or corruption: 0x0937d008 ***

      在默认的情况下,产生这个错误的程序也会被中止。但是,这(以及是否产生错误信息)可以通过环境变量 MALLOC_CHECK_ 来控制。以下的设置是被支持的:
            0 — 不产生错误信息,也不中止这个程序
            1 — 产生错误信息,但是不中止这个程序
            2 — 不产生错误信息,但是中止这个程序
            3 — 产生错误信息,并中止这个程序
      备注
      如果 MALLOC_CHECK_ 被设置为除 0 以外的值,这会使 glibc 进行更多的检查并可能影响到系统的性能。

      如果您的由第三方 ISV 提供的程序会引发这些数据破坏检查并显示错误信息,您应该向这个程序的提供者提交一个错误报告,因为它代表了一个严重的错误。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-08-10 06:20:00
6 [报告]
发表于 2007-03-26 15:56 |只看该作者

a sample code to generate this error


  1. #include <stdio.h>

  2. int main(void)
  3. {
  4. FILE *fs;

  5. fs=fopen("./test", "w");
  6. fclose(fs);
  7. fclose(fs);
  8. }
复制代码


[root@localhost tmp]# gcc g.c
[root@localhost tmp]# ./a.out
*** glibc detected *** ./a.out: double free or corruption (top): 0x08584008 ***
======= Backtrace: =========
/lib/libc.so.6[0x164f18]
/lib/libc.so.6(__libc_free+0x79)[0x16841d]
/lib/libc.so.6(fclose+0x143)[0x155443]
./a.out[0x8048412]
/lib/libc.so.6(__libc_start_main+0xdc)[0x1167e4]
./a.out[0x8048351]
======= Memory map: ========
00101000-0022d000 r-xp 00000000 03:09 2262934    /lib/libc-2.4.so
0022d000-00230000 r-xp 0012b000 03:09 2262934    /lib/libc-2.4.so
00230000-00231000 rwxp 0012e000 03:09 2262934    /lib/libc-2.4.so
00231000-00234000 rwxp 00231000 00:00 0
00497000-004a2000 r-xp 00000000 03:09 2262939    /lib/libgcc_s-4.1.0-20060304.so.1
004a2000-004a3000 rwxp 0000a000 03:09 2262939    /lib/libgcc_s-4.1.0-20060304.so.1
00512000-0052b000 r-xp 00000000 03:09 2262894    /lib/ld-2.4.so
0052b000-0052c000 r-xp 00018000 03:09 2262894    /lib/ld-2.4.so
0052c000-0052d000 rwxp 00019000 03:09 2262894    /lib/ld-2.4.so
006d7000-006d8000 r-xp 006d7000 00:00 0          [vdso]
08048000-08049000 r-xp 00000000 03:09 2429540    /tmp/a.out
08049000-0804a000 rw-p 00000000 03:09 2429540    /tmp/a.out
08584000-085a5000 rw-p 08584000 00:00 0          [heap]
b7e00000-b7e21000 rw-p b7e00000 00:00 0
b7e21000-b7f00000 ---p b7e21000 00:00 0
b7faa000-b7fab000 rw-p b7faa000 00:00 0
b7fc6000-b7fc7000 rw-p b7fc6000 00:00 0
bfab1000-bfac7000 rw-p bfab1000 00:00 0          [stack]
Aborted

论坛徽章:
0
7 [报告]
发表于 2007-03-26 15:56 |只看该作者
谢谢楼上的。我的程序还会提示Segmentation fault ,段错误

论坛徽章:
0
8 [报告]
发表于 2007-03-26 16:01 |只看该作者
原帖由 源方 于 2007-3-26 15:56 发表
谢谢楼上的。我的程序还会提示Segmentation fault ,段错误


继续用gdb跟踪。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-08-10 06:20:00
9 [报告]
发表于 2007-03-26 16:02 |只看该作者
原帖由 源方 于 2007-3-26 15:56 发表
谢谢楼上的。我的程序还会提示Segmentation fault ,段错误


检查程序,在使用变量时要进行有效性检查等等~!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2007-03-26 16:05 |只看该作者
原帖由 源方 于 2007-3-26 15:56 发表
谢谢楼上的。我的程序还会提示Segmentation fault ,段错误

gdb 之~
然后 bt
或者 ltrace 也行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP