码迷,mamicode.com
首页 > 其他好文 > 详细

内存的非法读写操作的检查

时间:2015-09-17 13:25:36      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

 

valgrind什么的就不说了

 

AddressSanitizer

除了heap,stack的也可以

https://en.wikipedia.org/wiki/AddressSanitizer#Stack-buffer-overflow

http://developerblog.redhat.com/2014/12/02/address-and-thread-sanitizers-gcc/

 

 

tcmalloc的page fence

局限是只能对heap做越界读写的检查

http://www.xuebuyuan.com/1466812.html

 

  http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz

    修改了代码,打开了内存越界检查的文件。修改如下:

    sed -i "s/EnvToBool(\"TCMALLOC_PAGE_FENCE\", false)/EnvToBool(\"TCMALLOC_PAGE_FENCE\", true)/g" src/debugallocation.cc
    意思是:
            src/debugallocation.cc: 101
                    DEFINE_bool(malloc_page_fence,
                                EnvToBool("TCMALLOC_PAGE_FENCE", false),
                                "Enables putting of memory allocations at page boundaries "
                                "with a guard page following the allocation (to catch buffer "
                                "overruns right when they happen).");
            将
                EnvToBool("TCMALLOC_PAGE_FENCE", false)
            改成了
                EnvToBool("TCMALLOC_PAGE_FENCE", true)

        cd gperftools-2.0 && ./configure --enable-frame-pointers && make

内存的非法读写操作的检查

标签:

原文地址:http://www.cnblogs.com/xuxm2007/p/4815950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!