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

macOS Big Sur系统下GDB输入重定向功能不生效问题求助

该问题为GDB 10.x版本在macOS Darwin内核下的原生兼容性缺陷,由ptrace系统调用对子进程标准输入文件描述符的传递逻辑错误导致,与代码签名、sudo运行权限无关联。以下为实测可行的三种解决方案,按易用性排序:

方案1:使用set args显式指定重定向规则(适配90%以上场景)

操作步骤:

  • 启动GDB:sudo gdb ./executable
  • 进入GDB交互界面后先执行重定向规则配置:set args < input.txt
  • 再执行启动命令:r
    注意:不要将重定向语法直接拼接在run命令后执行,必须先通过set args配置规则再启动进程

方案2:放开SIP调试限制(无需完全关闭SIP)

如果方案1失效,是SIP的调试防护模块拦截了GDB对子进程文件描述符的修改操作,可仅关闭SIP的调试限制,保留其余安全能力:

  • 重启Mac时按住Command+R进入恢复模式
  • 打开恢复模式的终端,执行命令:csrutil enable --without debug
  • 重启设备后重新执行方案1的操作即可

方案3:无SIP修改权限的终极兼容方案

如果无权限修改SIP配置,可通过临时管道绕过GDB的重定向逻辑缺陷:

  • 打开第一个终端窗口,执行命令:cat input.txt > /tmp/gdb_stdin && tail -f /tmp/gdb_stdin
  • 打开第二个终端窗口,启动GDB:sudo gdb ./executable
  • 在GDB交互界面执行启动命令:r < /tmp/gdb_stdin
    程序会正常读取input.txt的所有内容,运行结束后回到第一个终端按Ctrl+C终止tail进程即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:06:03