gaim segfault while blocking someone

Erik Wikström erik-wikstrom at telia.com
Tue Aug 29 13:51:24 PDT 2006


On 2006-08-29 14:28, Petr Janda wrote:
Here is the gdb backtrace:

(gdb) backtrace
#0  0x28a109b8 in kill () from /usr/lib/libc.so.6
#1  0x28a658e8 in abort () from /usr/lib/libc.so.6
#2  0x28a2f4c7 in reallocf () from /usr/lib/libc.so.6
#3  0x28a2f507 in reallocf () from /usr/lib/libc.so.6
#4  0x28a30ad1 in reallocf () from /usr/lib/libc.so.6
#5  0x28a308a6 in reallocf () from /usr/lib/libc.so.6
#6  0x28a3140c in free () from /usr/lib/libc.so.6
#7  0x2885a1b0 in g_free () from /usr/pkg/lib/libglib-2.0.so.0
#8  0x0808722d in gaim_privacy_permit_remove ()
#9  0x28e9d8a0 in msn_got_lst_user (session=0x290a5880, user=0x2919cc40, 
list_op=13, group_ids=0x29032de8) at userlist.c:380
I'm sure that there's someone better at gdb who might give you a better 
answer but here I would (in gdb) type "frame 8" to make the last stack- 
frame not in glib the active one and then type "list" which ought to 
print the part of the code that calls g_free, preferably with a name of 
the source-file and a line-number. Then I would probably take a look at 
that source-file and see if something looked obviously wrong.

Unfortunately things are seldom that simple so one would have to follow 
the stack trace backwards and watch the value of the pointer that is 
being freed and try to find a place where it's changed in a wrong way. 
You might have more luck getting in touch with the gaim developers.

--
Erik Wikström




More information about the Users mailing list