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

为何bpftrace无法捕获pwd命令的getcwd系统调用但strace可以?

为什么bpftrace捕获不到pwd命令的getcwd系统调用?
  • pwd大概率是Shell内置命令:多数主流Shell(比如Bash、Zsh)都将pwd实现为内置命令,执行pwd时不会启动独立的pwd进程,而是由当前Shell进程直接调用getcwd系统调用。你的bpftrace命令打印的comm是进程名,这时候会显示Shell的名字(比如bash)而非pwd,可能你因为没看到pwd字样就误以为没有输出。

    验证方式:执行type pwd,如果输出是pwd is a shell builtin,就说明是内置命令。若要触发外部pwd程序,直接执行绝对路径/bin/pwd,此时再运行你的bpftrace命令,就能抓到进程名为pwd的调用记录。

  • 核对tracepoint名称与内核版本匹配度:少数内核版本中,系统调用的tracepoint命名可能存在差异。你可以用bpftrace -l 'tracepoint:syscalls:*getcwd*'命令列出所有和getcwd相关的tracepoint,确认命令中使用的名称正确无误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:32:42