(gdb) #0 0x002d58d0 in pthread_mutex_trylock () from /lib/libpthread.so.0 #1 0x006dbf83 in ast_mutex_trylock (pmutex=0x6573752c) at /root/yuxiaobo/asterisk-1.4.23-rc3/include/asterisk/lock.h:760 #2 0x0071f853 in do_monitor (data=0x0) at chan_sip.c:16145 #3 0x08106009 in dummy_start (data=0x9fe1378) at utils.c:856 #4 0x002d343b in start_thread () from /lib/libpthread.so.0 #5 0x0022afde in clone () from /lib/libc.so.6 (gdb) bt full #0 0x002d58d0 in pthread_mutex_trylock () from /lib/libpthread.so.0 No symbol table info available. #1 0x006dbf83 in ast_mutex_trylock (pmutex=0x6573752c) at /root/yuxiaobo/asterisk-1.4.23-rc3/include/asterisk/lock.h:760 No locals. #2 0x0071f853 in do_monitor (data=0x0) at chan_sip.c:16145 res = 0 sip = (struct sip_pvt *) 0x6573752c peer = (struct sip_peer *) 0x0 t = 1231379496 fastrestart = 0 lastpeernum = -1 curpeernum = 74 reloading = 0 __PRETTY_FUNCTION__ = "do_monitor" #3 0x08106009 in dummy_start (data=0x9fe1378) at utils.c:856 __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {3022836, 0, 10312592, 10310600, 1059984012, 933436981}, __mask_was_saved = 0}}, __pad = {0x9d5480, 0x0, 0x0, 0x0}} __cancel_routine = (void (*)(void *)) 0x806a974 __cancel_arg = (void *) 0x9d5b90 not_first_call = 0 ret = (void *) 0x0 a = {start_routine = 0x71f690 , data = 0x0, name = 0x9fe13f8 "do_monitor", ' ' , "started at [16281] chan_sip.c restart_monitor()"} __PRETTY_FUNCTION__ = "dummy_start" #4 0x002d343b in start_thread () from /lib/libpthread.so.0 No symbol table info available. #5 0x0022afde in clone () from /lib/libc.so.6 No symbol table info available. (gdb) frame 2 #2 0x0071f853 in do_monitor (data=0x0) at chan_sip.c:16145 16145 if (ast_mutex_trylock(&sip->lock)) (gdb) list 16140 /*! \note If we can't get a lock on an interface, skip it and come 16141 * back later. Note that there is the possibility of a deadlock with 16142 * sip_hangup otherwise, because sip_hangup is called with the channel 16143 * locked first, and the iface lock is attempted second. 16144 */ 16145 if (ast_mutex_trylock(&sip->lock)) 16146 continue; 16147 16148 /* Check RTP timeouts and kill calls if we have a timeout set and do not get RTP */ 16149 if (sip->rtp && sip->owner && (gdb) p *sip Cannot access memory at address 0x6573752c (gdb) p sip->lock Cannot access memory at address 0x6573752c (gdb)