You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Apple M4芯片MacBook运行cargo bench时MallocStackLogging警告的含义及解决方法咨询

Apple M4芯片MacBook运行cargo bench时MallocStackLogging警告的含义及解决方法咨询

我之前在M系列芯片的Mac上也碰到过一模一样的问题,给你好好捋捋这个警告的来龙去脉,还有亲测有效的解决办法:

先搞懂这个警告到底是什么意思

cargo(31826) MallocStackLogging: can't turn off malloc stack logging because it was not enabled...

这个MallocStackLogging是macOS自带的一个内存调试工具,专门用来追踪内存分配的调用栈信息,一般只有你用Instruments、LLDB这类调试/性能分析工具的时候,才会主动开启它。这个警告的核心意思是:cargo或者它启动的基准测试进程,尝试去关闭这个日志功能,但实际上这个功能本来就没被开启,所以系统就抛出了这个提示。

划重点:这个警告本身完全不会影响cargo bench的正常运行,只是看着有点闹心而已。

亲测有效的解决/屏蔽方法

  • 临时快速解决:运行命令时指定环境变量
    每次执行cargo bench的时候,直接在前面加上环境变量,强制跳过这个功能的检测:

    MallocStackLogging=0 cargo bench
    

    这个方法不用改任何配置,临时用非常方便。

  • 永久解决:修改cargo全局配置
    如果你不想每次都手动加环境变量,可以给cargo设置默认的环境变量。找到~/.cargo/config.toml文件(如果没有就自己新建一个),在里面添加这段内容:

    [env]
    MallocStackLogging = "0"
    

    保存之后,不管你运行cargo bench还是其他cargo命令,都会自动带上这个变量,以后就再也看不到这个警告了。

  • 排查潜在的残留调试设置
    你已经试过重启了,但如果偶尔还是会出现这个警告,可以做个小排查:

    1. 在终端输入echo $MallocStackLogging,看看这个环境变量有没有被意外设置了值,如果有的话,用unset MallocStackLogging命令清除掉就行。
    2. 打开「活动监视器」,搜索lldb或者Instruments相关的进程,要是有没正常关闭的后台进程,结束掉再试试。

内容来源于stack exchange

火山引擎 最新活动