底线问题:是否可以让 Xcode 等待应用程序启动,然后从 Xcode 外部启动应用程序,然后让 Xcode 在断点处停止?
--下面有详细说明--
我想调试(逐行逐行)一个简单的 C 程序,该程序需要在 10.8.5 上使用 Xcode 4.6.3 将文本通过管道传输到标准输入。
为了做到这一点,我需要像这样启动程序 $ cat in.txt | ./mysimpleprogram > out.txt 并让 Xcode 调试器在断点处停止。
我按照我在这个答案https://stackoverflow.com/a/13006633/2779792中找到的说明进行操作,但 Xcode 不会在断点处停止。
重现问题
打开 Xcode 4.6.3
在“Welcome to Xcode”屏幕中选择“Create a new Xcode project”
在“为新项目选择模板”屏幕中选择 Mac OS X -> 应用程序 -> 命令行工具,然后单击下一步
在“为您的新项目选择选项:”屏幕中产品名称:HelloWorld,类型:C -> 下一步,使用自动引用计数 = False
选择项目的位置。
注意:在 Xcode 首选项 -> 位置 -> 派生数据中,我选择了“相对”
转到产品菜单 -> 方案 -> 编辑方案
在 Scheme Editing 窗口的左侧,默认选择的是“Run HelloWorld Debug”。在 Scheme Editing 窗口的右侧,我将 Launch Automatically 单选按钮更改为“等待 HelloWorld 启动”。调试器 = LLDB,调试过程为 = 我
在代码中设置一个或多个断点。
选择产品 -> 运行(或单击播放按钮)。现在 Xcode 主窗口显示“等待 HelloWorld 启动”。
打开一个终端窗口并导航到 HelloWorld 可执行文件,在我的例子中是 .../HelloWorld/DerivedData/HelloWorld/Build/Products/Debug/
使用命令 ./HelloWord 运行程序
程序运行并打印 Hello, World! 正如预期的那样,Xcode 显示“已完成运行 HelloWorld:HelloWorld”。它没有在任何断点处停止。
期望的行为,Xcode 应该在断点处停止并允许我单步执行代码。
感谢您的任何帮助或提示。