1)./configure --prefix=/home/xiaoming/valgirnd-install/
--enable-only32bit \
//linux32 ./configure
//若有configure关于glibc版本问题可以修改configure中版本检测:加上本地glibc的版本支持
make
make install
//测试后因为程序有大数组,错误:
valgrind ./fudao
valgrind: mmap(0x80ad000, 2154954752) failed in UME with error 22 (Invalid argument).
valgrind: this can be caused by executables with very large text, data or bss segments
//看看addresssannitizer怎么样?
2) 安装32bit AddressSanitizer => gcc版本高于4.8已经有了改功能。
此外,需要安装的库:libasan.x86_64,新版本的gcc可能还需要安装libubsan,gcc默认安装这写库。
//查找yum安装库:yum search libasan,发现libasan多个库;
//然后安装32位版本动态库:yum install libasan.i686
-fsanitize=address #开启地址越界检查功能
-fno-omit-frame-pointer #开启后,可以出界更详细的错误信息
//-fsanitize=leak #开启内存泄露检查功能//本地显示不支持这个选项?
3.but,run error:
Shadow memory range interleaves with an existing memory mapping. ASan cannot proceed correctly. ABORTING.