构建带内存错误检查的gcc
时间:2009-08-10 来源:lixianjing
转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli at hotmail dot com>
在《大内高手系列》中,我们提到一个用于内存错误检测gcc的扩展boundschecking,本文简要说明一下如何构建带boundschecking的gcc。
1. 下载gcc,本文使用的版本是3.4.2。
http://gcc.gnu.org/
2. 下载gcc扩展boundschecking。
http://sourceforge.net/projects/boundschecking/
3. 给gcc打上补丁。
[root@limodev toolchain]# tar jxvf /mnt/hgfs/linux/gcc-3.4.2.tar.bz2
[root@limodev toolchain]# bzip2 -d bounds-checking-gcc-3.4.2-1.00.patch.bz2
[root@limodev toolchain]# cd gcc-3.4.2/
[root@limodev gcc-3.4.2]# patch -p1 -s < ../bounds-checking-gcc-3.4.2-1.00.patch
4. 编译
[root@limodev gcc-3.4.2]# cd ..
[root@limodev toolchain]# mkdir build
[root@limodev toolchain]# cd build/
[root@limodev build]# ../gcc-3.4.2/configure –prefix=/opt/gcc-3.4.2-bc
[root@limodev build]# make;make install
5. 使用
编译时加”-g -fbounds-checking”,-g是为了让bounds-cheking能找到符号表,报告 出现错误的源代码位置。如果是编译共享库,还要链接libbounscheking.a库。