当前位置: 首页 > news >正文

佛山专业英文网站建设西安企业做网站

佛山专业英文网站建设,西安企业做网站,广州黄埔区网站建设,门户建设网站方案关于GCC/LLVM编译器中的sanitize选项用处用法详解 ​ 编译器中sanitize选项原本来自google的开源C/C 工具集sanitizers项目, 包括了AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer,Sanitizers项目本是LLVM项目的一部分,但GNU也将该…

关于GCC/LLVM编译器中的sanitize选项用处用法详解

​ 编译器中sanitize选项原本来自google的开源C/C+ +工具集sanitizers项目, 包括了AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer,Sanitizers项目本是LLVM项目的一部分,但GNU也将该系列工具加入到了自家的GCC编译器中。GCC从4.8版本开始支持Address和Thread Sanitizer,4.9版本开始支持Leak Sanitizer和UB Sanitizer,这些都是查找隐藏Bug的利器。

​ 关于GNU GCC提供的关于sanitize的编译选项有:

  1. -fsanitize=address

    开启AddressSanitizer,一个快速的内存错误检查工具。内存访问的指令用于检测越界和使用后释放的bug。此外可以通过设置ASAN_OPTIONS环境变量来影响运行时的行为。当ASAN_OPTIONS环境变量设置为help=1时(如:ASAN_OPTIONS=help=1),所有可用的选项将在将在程序启用时显示。更多关于ASAN_OPTIONS环境变量有哪些预设值,参考wiki。ASAN_OPTIONS环境变量不能结合-fsanitize=thread使用。

  2. -fsanitize=kernel-address

    为Linux kernel开启AddressSanitizer。KernelAddressSanitizer(KASAN)是一个动态内存错误检测工具,它提供了快速且全面的解决方案,用于查找Linux内核中使用后释放和越界的bug。更多信息查看KASAN wiki。

  3. -fsanitize=pointer-compare

    指针操作数的比较操作工具(<, <=, >, >=)。该选项必须要么和-fsanitize=kernel-address共用,要么和-fsanitize=address共用,他不能与-fsanitize=thread共用。该检查默认在运行时是关闭的,开启需要设置ASAN_OPTIONS环境变量为detect_invalid_pointer_pairs=2(如:ASAN_OPTIONS=detect_invalid_pointer_pairs=2)。设置ASAN_OPTIONS环境变量为detect_invalid_pointer_pairs=1,仅当两个指针操作数都为非NULL时才检测是否有无效操作。

  4. -fsanitize=pointer-subtract

    指针操作数的比较操作工具(-)。该选项必须要么和-fsanitize=kernel-address共用,要么和-fsanitize=address共用,他不能与-fsanitize=thread共用。该检查默认在运行时是关闭的,开启需要设置ASAN_OPTIONS环境变量为detect_invalid_pointer_pairs=2(如:ASAN_OPTIONS=detect_invalid_pointer_pairs=2)。设置ASAN_OPTIONS环境变量为detect_invalid_pointer_pairs=1,仅当两个指针操作数都为非NULL时才检测是否有无效操作。

  5. -fsanitize=thread

    开启ThreadSanitizer,一个快速的数据竞争检测工具。内存访问的指令用作检测数据竞争的bug。更多信息见threadsanitizer wiki。通过设置ASAN_OPTIONS环境变量可以影响运行时的行为,关于该变量支持的设置值见ThreadSanitizerFlags wiki。该选项不能与-fsanitize=address-fsanitize=leak共用。

  6. -fsanitize=leak

    开启LeakSanitizer,一个内存泄露检测工具。该选项仅关心链接或覆盖了malloc和其他分配器的库的可执行程序。更多信息见AddressSanitizerLeakSanitizer wiki。通过设置ASAN_OPTIONS环境变量可以影响运行时的行为,关于该变量支持的设置值见ThreadSanitizerFlags wiki。该选项不能与-fsanitize=thread共用。

    还有几个关于sanitizer的编译选项,有兴趣的参看:https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html

http://www.jinmujx.cn/news/112018.html

相关文章:

  • 沈阳网站设计开发公司推广渠道平台
  • 网站域名做固定资产怎么处理seo是什么部位
  • 厦门建设工程造价信息网win7优化工具
  • ps做网站页面设置为多大客服网站搭建
  • 在vs上用c 做登录网站想要推广页
  • 科技未来网站建设厦门人才网最新招聘信息
  • 不会编程怎样建设网站泉州seo网站排名
  • 淘宝客不建立网站怎么做下载百度 安装
  • 外国高端网站宁波seo优化外包公司
  • 网站建设后台 手工上传seo关键词排名优化app
  • wordpress comment meta queryseo关键词优化怎么收费
  • 怎么做能让网站收录的快网络营销的重要性与意义
  • 怎么做自我介绍网站招聘seo专员
  • 甘肃省和住房建设厅网站最近新闻热点事件
  • 打开浏览器的网站百度客服人工
  • 东莞门户网站建设方案专业的seo外包公司
  • 三峡建设网站网店运营在哪里学比较好些
  • 一个网站两个域名百度权重提升
  • 渭南网站开发域名免费注册
  • 给别人做的网站涉及到诈骗二级域名免费申请
  • 怎么做网站排名成人技术培训学校
  • 公司注册网站多少钱免费网站seo排名优化
  • php做电商网站安全性如何桌子seo关键词
  • 注册公司注册地址怎么弄百度关键字优化
  • 桂林公司做网站软文世界官网
  • 化妆品网站建设的维护百度官方网址
  • 好的做网站正规的关键词优化软件
  • 个人网站毕业设计网站运营课程
  • 北京做网站找哪家好怎样做seo搜索引擎优化
  • 深圳专业营销网站公司我为什么不建议年轻人做运营