macos - Mac OS:泄漏消毒剂
问题描述
Mac OS X 塞拉利昂 10.13
我按照这里写的 https://clang.llvm.org/docs/LeakSanitizer.html
即创建了内存泄漏的小应用程序
#include <stdlib.h>
void *p;
int main() {
p = malloc(7);
p = 0; // The memory is leaked here.
return 0;
}
然后构建它并运行以测试如何检测到内存泄漏:
admins-Mac:test2 admin$ clang -fsanitize=address -g mleak.c ; ASAN_OPTIONS=detect_leaks=1 ./a.out
==556==AddressSanitizer: detect_leaks is not supported on this platform.
Abort trap: 6
admins-Mac:test2 admin$
如何检测泄漏?我需要将它用于我的大型应用程序。
解决方案
Apple 提供的 Clang/LLVM 似乎没有-fsanitize=leak
支持。我通过在 Homebrew 上安装 LLVM 来修复它。更详细的修复在gist
$ brew install llvm@8
# Overwritten default Clang
$ echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> .zshrc
$ source ~/.zshrc
$ which clang
/usr/local/opt/llvm/bin/clang
推荐阅读
- graphics - STM32上的VGA像素分组
- android - 将我的网站限制为仅在特定设备上加载
- spring-boot - 为 spring boot 2.2.4.RELEASE 传递配置文件详细信息的替代选项
- flutter - 如何在一个类中制作多个可重用的小部件?
- python - Python-Eve:查询以字符串形式保存的 IP 地址
- docker - 启动容器进程导致“exec:\”go\“:$PATH 中找不到可执行文件”:未知
- ruby-on-rails - Rails 6 ActiveStorage - 参数中不允许测试fixture_file_upload()
- c# - 为什么我不能从应用程序中的 SQLITE TABLE 中读取 TEXT 属性?
- nlp - 使用 AI 服务识别自由文本搜索字段问题?
- spring - 无法使用 JdbcTemplate 更改 Oracle 会话