我正在使用XCode来调试用C ++ / Obj-C / C编写的程序。该程序集成了Civetweb,以便能够接受HTTP请求。 95%的时候,当我在调试模式下启动程序时,在第一个HTTP请求中,我执行XCode调试器停止并显示以下“代码片段”:
libsystem_kernel.dylib`__psynch_cvwait:
0xa1668304 <+0>: movl $0x131, %eax ; imm = 0x131
0xa1668309 <+5>: calll 0xa166a408 ; _sysenter_trap
-> 0xa166830e <+10>: jae 0xa166831e ; <+26>
0xa1668310 <+12>: calll 0xa1668315 ; <+17>
0xa1668315 <+17>: popl %edx
0xa1668316 <+18>: movl 0x58d5d0f(%edx), %edx
0xa166831c <+24>: jmpl *%edx
0xa166831e <+26>: retl
0xa166831f <+27>: nop
调试器光标指向+10地址(箭头指向)。
如果我尝试让它继续,我可以看到该代码段在_pthread_cond_wait
:
-> 0x23ed080 <+647>: addl $0x30, %esp
...如果我放开程序,我在日志中看到最后一个有意义的事件是我们的TCP连接接受器类中的抛出异常:
Can't Accept Software caused connection abort
这种情况经常发生,但并非总是如此:15次中有1次我能够成功启动该程序。我不能说这里发生了什么:Windows上的相同代码运行没有问题。你知道造成这种情况的原因吗?