当前位置:  开发笔记 > 编程语言 > 正文

记忆消毒剂

如何解决《记忆消毒剂》经验,为你挑选了1个好方法。

我在Ubuntu 14.04上使用Clang 3.7.0玩Memory Sanitizer.以下代码可以完美地运行:

#include 

int main() {
  double ans;
  printf("Hello World: %f\n", ans);

  return 0;
}

编译时

 clang++ -g -O1 -fsanitize=memory -fsanitize-memory-track-origins=2 -fomit-frame-pointer sanitize.cpp -o sanitize

我期待一个错误.Memory Sanitizer没有捕获ans未初始化的事实吗?

谢谢你的帮助.



1> SergeyA..:

从clang santitizer文档中可以清楚地看出它只处理来自动态分配的内存的单元化内存读取.自动记忆不是消毒剂检查的一部分.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有