Re: gtk-based sip client "locking up"



Frank W. Miller wrote:
I'm writing a SIP client for Linux.  It has a command line interface 
currently but I've recently begun writing a GNOME GUI front-end.  I 
started with Glade and had reasonable success, i.e. I got it to where is 
was making outbound calls with decent UI interactions.  I then noticed a 
problem.  About half the time, when I started to make a call, i.e. when 
I was sending the first few messages of the SIP dialog, the GUI would 
"lock up" on me.  What this means is that I have a couple of notebook 
tabs and some entry fields on each tab.  There are also a couple of 
buttons.  Its pretty simple.  By lock up, I mean that at some point the 
GUI just stops updating the various widgets.  If I hit the tabs, it 
seems like its trying to switch between them but I just get white 
rectangles and no labels.  The program does not seem to recover from this.

I puzzled over this for a week or so and then thought it might be some 
strange thing with Glade so I went and rewrote the whole thing from 
scratch by hand.  I have the same behaviour from this version of the 
GUI.  I've come the conclusion that there must be something I am either 
doing or not doing that causes this and I'm hoping someone can help me 
with a pointer in the right direction!

I'd try two things:

1) Valgrind.  It's not easy to find memory leaks in GTK+ code because GTK+
   itself and especially X (it seems) both leak like mad, but reads of
   uninitialized memory, writes to unallocated memory and such are easily
   spottable with Valgrind.

2) Start your program under GDB, wait for it to lock up, hit Ctrl-C in the
   terminal and study the backtrace.  Thus you can find in which function
   it locks up.  Tracking _why_ it freezes can be more difficult, though ;)

Paul



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]