一、简要介绍下glibc libc
glibc:
最开始是由fsf组织发起,实现ANSI C标准,在1990年后开始兼容c89和posix标准
libc:
1)起源于glibc,在1990年后,linux内核开发者发现glibc的发展过于缓慢,就拷贝了一个分支,后独立发展libc2-libc5
2)但1997年,glibc release了2.0版本,在可移植性,功能支持(ipv6、64位)等各方面均超越libc,libc分支就被废弃,重新启用glibc
但由此,版本号升级为libc6指向glibc2
引文:
http://en.wikipedia.org/wiki/GNU_C_Library
二、GNU扩展mcheck
简单说下mcheck可能检测的错误:
MCHECK_HEAD
数组或者指针越界,下限
MCHECK_TAIL
数组或者指针越界,上限
MCHECK_FREE
两次free
三、*** glibc detected free(): invalid pointer: 0x36dfab78 问题
Program received signal SIGABRT, Aborted.
原因主要是源码中有破坏heap一致性的地方,违反了GNU扩展mcheck&#x
glibc:
最开始是由fsf组织发起,实现ANSI C标准,在1990年后开始兼容c89和posix标准
libc:
1)起源于glibc,在1990年后,linux内核开发者发现glibc的发展过于缓慢,就拷贝了一个分支,后独立发展libc2-libc5
2)但1997年,glibc release了2.0版本,在可移植性,功能支持(ipv6、64位)等各方面均超越libc,libc分支就被废弃,重新启用glibc
但由此,版本号升级为libc6指向glibc2
引文:
http://en.wikipedia.org/wiki/GNU_C_Library
二、GNU扩展mcheck
简单说下mcheck可能检测的错误:
MCHECK_HEAD
数组或者指针越界,下限
MCHECK_TAIL
数组或者指针越界,上限
MCHECK_FREE
两次free
三、*** glibc detected free(): invalid pointer: 0x36dfab78 问题
Program received signal SIGABRT, Aborted.
原因主要是源码中有破坏heap一致性的地方,违反了GNU扩展mcheck&#x