tcmalloc在macOS 下无法工作

在macOS试图用tcmalloc来检查内存泄漏,但是折腾了一个上午也不行。
开始时还是用Linux上常用的 LD_PRELOAD,但后来找到一个macOS下的类似环境变量:DYLD_INSERT_LIBRARIES

但用了这个报错:

➜ bin git:(9.0) ✗ export DYLD_INSERT_LIBRARIES=/usr/local/lib/libtcmalloc.dylib
dyld: warning: could not load inserted library '/usr/local/lib/libtcmalloc.dylib' into library validated process because no suitable image found. Did find:
/usr/local/lib/libtcmalloc.dylib: code signing blocked mmap() of '/usr/local/lib/libtcmalloc.dylib'

搜了搜,类似的错误,在iOS下面发生的比较多,都是和证书签名相关:

说下载重新下载 WWDR (Apple Worldwide Developer Relations Certification Authority)的:
https://stackoverflow.com/questions/32730312/reason-no-suitable-image-found
(Download from here: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

证书信任权限的:
https://www.fusetools.com/community/forums/bug_reports/xcode_jetfire_issue

或者自己签名也不行
https://github.com/sickill/stderred/issues/51

看到说是csrutil打开的:
https://www.bountysource.com/issues/41873753-code-signing-blocked-mmap

想了想,直接到root用户下去执行,果然不报错了,但是还是不起作用。

最后找到一篇,说HEAPCHECK功能无法在OSX下运行:
https://github.com/gperftools/gperftools/issues/392
issue仍然是open的,但已经是2015年8月的帖子了。两年了也没个新动静?

发表评论

电子邮件地址不会被公开。 必填项已用*标注