When I ran without breakpoints to just run sipXtapi/recon under gdb in Linux, it asserted.
I now have found that this is a known problem: http://list.sipfoundry.org/archive/sipxtapi-dev/msg02138.html I believe this is the problem: http://www.nabble.com/posix-semaphores-not-working-under-gdb-td1712835.html Here is one change in OsCSemLinux.cpp that works: OsStatus OsCSemLinux::acquire(const OsTime& rTimeout) { struct timespec timeout; OsStatus res; if (rTimeout.isInfinite()) { do { res = (pt_sem_wait(&mSemImp) == POSIX_OK) ? OS_SUCCESS : OS_BUSY; }while (res == OS_BUSY); } ... Another way maybe to check for EINTR signal and call pt_sem_wait again. Another way maybe to only loop on pt_sem_wait twice on failure. I hope this helps and gets fixed. Now we should be able to debug using gdb. I have tested this under the gdb integration with Eclipse. David Suh On Wed, May 13, 2009 at 11:55 AM, Alexander Chemeris <[email protected]> wrote: > Hi, > > On Wed, May 13, 2009 at 9:56 PM, dsuh <[email protected]> wrote: >> I am trying to debug sipXtapi with recon and I get an OS_WAIT_TIMEOUT >> in the assert in line 158 of OsServerTask.cpp when I run without any >> breakpoints. > > You really sure you meant "WITHOUT any breakpoints"? > >> Just running the testUA app works fine. >> Is there any settings in sipXtapi to disable timeouts and other >> hinderances to debugging? > > In general - no. But there are not so much places where timeouts will make > you trouble when debugging. At this place exactly, timeout is set to > OS_INFINITY which obviously makes it impossible to timeout ;) > So, I wonder - which revision do you use? Under which OS? Are you > really very sure it is timeout? > > > -- > Regards, > Alexander Chemeris. > > SIPez LLC. > SIP VoIP, IM and Presence Consulting > http://www.SIPez.com > tel: +1 (617) 273-4000 > _______________________________________________ sipxtapi-dev mailing list [email protected] List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/
