mudflap/address sanitizer

18 篇文章 2 订阅
12 篇文章 1 订阅

摘录几篇文档,归纳一下:

mudflap:

编译时加上-fmudflap -lmudflap,编译出的程序在运行时会进行内存越界等检测。

gcc mudflap_test.c -fmudflap -lmudflap

仅限于GCC4.9之前的GCC版本:

The mudflap run time checker was removed in GCC 4.9 and it is superseded by Address Sanitizer. The mudflap options remain, but do nothing. This page applies only to earlier versions of GCC.

也就是说从GCC 4.9开始就mudflap就被Address Sanitizer(GCC 4.8引入)给替代了!~


address sanitizer:

gcc 4.8的一个很酷的新特性是内建的“地址消毒剂”:C/C++的内存错误检测器,例如,如果您访问了已经删除的内存,它会立刻报告。

它基本上是重写了malloc和free,并且在访问之前做内存检查(详情请看 项目wiki )。很显然它采用了一种非常高效的方式,因为相比于不做检查执行仅缓慢了2倍!
只要在编译器调用中添加-fsanitize=address -fno-omit-frame-pointer,在链接器调用中添加-fsanitize=address。
AddressSanitizer     , a fast memory error detector, has been added and can be     enabled via -fsanitize=address. Memory access     instructions will be instrumented to detect heap-, stack-, and     global-buffer overflow as well as use-after-free bugs. To get     nicer stacktraces, use -fno-omit-frame-pointer.

具体可参考后面的link。


相关link如下:

使用mudflap检查内存越界



在Qt中使用gcc 4.8.0的地址消毒剂(Address Sanitizer)


下面两个link是关于GCC4.8的,里面也提到address sanitizer,附在这里。

GCC 4.8发布,完成向C++的迁移

http://www.internetnews.com/blog/skerner/open-source-gcc-4.8-compiler-including-address-sanitizer-security.html
Open Source GCC 4.8 Compiler Including Address Sanitizer Security




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值