.glibc detected ERROR

    技术2022-05-19  17

    红帽企业 Linux 4 *** glibc detected *** double free

    Q: 在执行一个程序时,出现如下错误: *** glibc detected *** double free or corruption: 0x0937d008 *** 是怎么回事?   A:  设置MALLOC_CHECK_环境变量再运行程序,呵呵,错误信息消失 MALLOC_CHECK_=0  ./myprogram 红帽企业 Linux 4 提供的 glibc 可以执行附加的内部数据健全检查,从而在尽可能早的时候发现和保护数据被破坏。在默认的情况下,当被破坏的数据被发现时,与以下相似的错误信息会被显示在标准的错误输出上(如果 stderr 没有打开,会被记录在 syslog 中): *** glibc detected *** double free or corruption: 0x0937d008 *** 在默认的情况下,产生这个错误的程序也会被中止。但是,这(以及是否产生错误信息)可以通过环境变量 MALLOC_CHECK_ 来控制。以下的设置是被支持的: 0 - 不产生错误信息,也不中止这个程序 1 - 产生错误信息,但是不中止这个程序 2 - 不产生错误信息,但是中止这个程序 3 - 产生错误信息,并中止这个程序 备注 如果 MALLOC_CHECK_ 被设置为除 0 以外的值,这会使 glibc 进行更多的检查并可能影响到 系统的性能。

    最新回复(0)