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/

Reply via email to