我在C中构建一个简单的客户端 - 服务器应用程序,并使用Xcode作为IDE来开发它。这是我第一次使用Xcode做任何事情,所以我选择了一点绿色。
我创建了两个目标,一个用于客户端,另一个用于服务器。我可以建立和运行任何一个就好了。但是,当我想构建并运行两者(IE服务器运行时执行客户端)时,客户端构建会立即消失。
如果我尝试运行同一目标的两个实例,比如说服务器和服务器,我会得到一个提示,告诉我是要停止原始进程还是添加新进程。在服务器运行时,我不会尝试运行客户端。
奇怪的是,当我在客户端源代码中设置断点时,整个事情按预期运行。如何将此作为默认行为?
由于
答案 0 :(得分:4)
我认为接受的答案已经过时了。在Xcode 9中,只要您有两个目标,每个应用一个,您就可以选择第一个目标并按“运行”。启动该调试会话,并在其运行时,切换到第二个目标并按“运行”。再次启动第二个应用程序。
在调试器窗格中,您会看到一个下拉列表,可让您选择要查看输出的目标。
我还没找到的是如何从同一个方案中自动启动它们。它仍然是一个手动过程,但它不需要多个Xcode实例或使用命令行。
答案 1 :(得分:1)
Xcode调试器一次只能挂钩到一个应用程序。
在我自己的客户端/服务器调试中,我通常要么有两台运行Xcode的计算机,其中一台正在使用服务器进行测试,另一台正在使用客户端进行测试。
如果您只有一台机器,我通常会从命令行运行服务器或客户端的实例(您可以通过转到保存构建产品的“Products”文件夹启动任何应用程序,然后输入“ProductName.app/Contents/MacOS/ProductName
”;应用程序二进制文件保存在应用程序的包中)然后我运行Xcode调试器来实现我要调试的实际内容。
希望这是有道理的!