内存消毒剂

2023-12-23

我正在 Ubuntu 14.04 上使用 Clang 3.7.0 来玩 Memory Sanitizer。下面的代码可以完美运行:

#include <cstdio>

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 未初始化的事实吗?

感谢您的帮助。


从 clang sanitizer 文档中可以清楚地看出,它只处理动态分配的内存中未初始化的内存读取。自动记忆不是消毒剂检查的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内存消毒剂 的相关文章

随机推荐