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

Valgrind无法创建日志文件提示“Permission denied”的问题求助

Valgrind无法创建日志文件提示“Permission denied”的问题求助

各位好,我遇到了一个Valgrind日志权限的问题,想请教大家帮忙解决:

我正在运行一个由多个可执行文件组成的Linux应用,进程结构如下:

  • base_app 以超级用户权限启动,通过fork()创建su_app和non_su_app两个子进程
  • non_su_app需要以普通用户权限运行,因此在fork()之后我调用了setegid()和seteuid()切换到普通用户权限

为了给这些进程做内存分析,并且分别收集每个进程的独立日志,我执行了以下命令:

sudo valgrind --tool=memcheck --trace-children=yes --leak-check=full --show-leak-kinds=all --log-file=/tmp/log_files/valgrind-%p /path/to/base_app

这条命令对base_app和su_app都能正常工作,但当程序尝试启动non_su_app时,会反复抛出权限错误:

valgrind: Cannot create log file '/tmp/log_files/valgrind-15056': Permission denied

最终导致整个应用完全无法启动。

我已经尝试过以下两种方法,但都没有解决问题:

  • 将日志目录/tmp/log_files的权限修改为777
  • 调整命令执行顺序,用Valgrind包裹sudo启动应用:
    valgrind --tool=memcheck --trace-children=yes --leak-check=full --show-leak-kinds=all --log-file=/tmp/log_files/valgrind-%p sudo /path/to/base_app
    

想请教一下,有没有什么办法能让我正确收集到所有进程的Valgrind日志呢?

备注:内容来源于stack exchange,提问作者WereWind

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 08:52:58