Xcode 10运行C++终端程序报错调试器无法附加、退出码-1如何解决
错误含义
报错提示中的Message from debugger: unable to attach,本质是Xcode内置的LLDB调试器无法获得目标进程的操作权限,没能成功建立调试会话,可执行程序还未进入正常的代码执行流程就被系统终止,因此返回退出码-1。由于该报错在运行任意C代码时都会触发,可以直接排除C代码本身的语法、逻辑问题,故障点完全出在Xcode的调试链路配置或系统权限层面。
解决方法(适配MacOS 10.13.6 + Xcode 10环境)
- 校验系统层面的调试权限:打开系统「安全性与隐私」偏好设置,切换到「隐私」标签页,在应用列表中找到Xcode,确认其调试权限处于勾选开启状态。macOS 10.13的权限机制会直接拦截未获得授权的调试程序的附加操作,这是该报错最常见的触发原因。
- 清理损坏的派生数据缓存:打开Xcode偏好设置,定位到「Locations」面板,点击Derived Data栏对应的路径入口,打开缓存目录后删除目录内的所有内容,重启Xcode后再尝试运行项目。老版本Xcode的缓存文件损坏,会直接导致调试器无法正常加载附加逻辑。
- 检查运行方案的调试配置:点击Xcode顶部运行目标的下拉菜单,选择「Edit Scheme」,在左侧列表选中「Run」项,切换到「Info」标签页,确认Debugger选项为LLDB而非「None」。如果误将调试器选项设为None,系统会跳过调试器加载流程,直接触发无法附加的报错。
- 开启系统开发者模式:打开终端执行命令
DevToolsSecurity -enable,按照提示输入系统管理员密码完成操作。macOS 10.13默认拦截开发者模式未开启状态下的调试器附加请求,完成开启后重启Xcode再测试运行。 - 修复命令行工具组件:打开终端执行
xcode-select --install,按照弹窗提示完成Xcode命令行工具的修复安装。如果该组件的签名或文件损坏,会连带影响Xcode主程序的调试功能,完成修复后重启系统再尝试运行。
内容的提问来源于stack exchange,提问作者pythonprogrammer31
相关产品推荐
相关产品推荐

