【发布时间】:2016-01-16 02:18:26
【问题描述】:
我使用的是 OS X 10.10.5 和 Xcode 7.2。我有一个程序可以生成一个子进程来使用 OpenGL/GLUT 运行可视化,即
pid_t childpid;
childpid = fork();
if(childpid == 0) { // this is the child process
glutInit(&argc, argv);
...
}
else{ // this is the parent process that does something else
...
}
当我在 Xcode 中运行它时,程序永远不会从 glutInit 返回。相反,如果我使用父进程进行可视化,并使用子进程来运行其他所有内容,即
if(childpid != 0) { // this is the parent process
glutInit(&argc, argv);
...
}
...
然后弹出OpenGL窗口,整个程序运行正常。此外,如果我在 Xcode 之外的终端中使用 Makefiles 构建时运行原始版本(让孩子进行可视化),一切运行正常。
关于什么可能导致这种情况的任何想法?
我无法在 Xcode 中调试很远的东西,因为调试器总是跟随父进程。如果我尝试通过 Debug->Attach to process 附加到子进程,我会收到错误消息:“Xcode 无法附加到“J2”。“J2”不支持可调试架构。”我发现了关于在 xcode 中附加到其他进程的最后一期的一些问题,但解决方案对我不起作用。
【问题讨论】:
标签: c xcode opengl multiprocessing glut