You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何用ThreadSanitizer运行程序时/proc/$pid/comm值变为exe?

ThreadSanitizer 导致 /proc/$pid/comm 显示为 "exe" 的原因

这是GCC 7.3.0配套的ThreadSanitizer(TSAN)的固有行为:

  • TSAN运行时会通过系统调用prctl(PR_SET_NAME, "exe")主动修改进程的内核态名称,也就是/proc/$pid/comm读取的内容。
  • ps命令显示的是进程启动时命令行参数里的程序名,这个不会被TSAN修改,因此会和/proc/$pid/comm的内容出现差异。

这个设计是早期TSAN用来标识被插桩(instrumentation)进程的方式,在后续的GCC版本(比如GCC 8及以后)中,TSAN已经调整了该逻辑,会保留原始程序名称,不再将comm字段改为"exe"。如果需要避免这个问题,可以考虑升级你的GCC版本。

内容的提问来源于stack exchange,提问作者log log

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:11:07