【发布时间】:2013-10-05 17:14:17
【问题描述】:
底线问题:是否可以让 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 应该在断点处停止并允许我单步执行代码。
感谢您的任何帮助或提示。
【问题讨论】:
-
你试过
Debugger->Attach to Process吗? -
根据您的建议,我尝试了几种打开终端并选择产品 -> 附加到进程 -> 终端的变体。它仍然不会在断点处停止。 “终端”是正确的附加过程吗?当然,HelloWorld 不是列表中的可用进程,HelloWorld 一旦启动,只会在列表中存在一微秒。
-
在stackoverflow.com/questions/7629886/…查看我最近对相关问题的回答