|
|
发表于 2004-12-22 16:07:14
|
显示全部楼层
henryouly,今天我的gaim-qq crash了整个gaim,以下是crash时候bt的记录。
Starting program: /usr/local/bin/gaim
Program received signal SIGSEGV, Segmentation fault.
0xb791f59a in __strtol_internal () from /lib/tls/libc.so.6
(gdb) bt
#0 0xb791f59a in __strtol_internal () from /lib/tls/libc.so.6
#1 0xb749a2a3 in qq_process_recv_file_request (data=0xbffe94ac "",
cursor=0xbffe9554, data_len=0, sender_uid=7851683, gc=0x85a5da8)
at stdlib.h:317
#2 0xb748bfd8 in _qq_process_recv_normal_im (data=0xbffe94ac "",
cursor=0xbffe9554, len=123, gc=0x83d01d0) at im.c:406
#3 0xb748cc5f in qq_process_recv_im (buf=0xb77d3080 "\2000}\u7b4f4}\u7a432000}\uffff",
buf_len=-1217572488, seq=38228, gc=0x83d01d0) at im.c:718
#4 0xb7494cb0 in _qq_packet_process (buf=0xbffe95fc "\002\001", buf_len=137,
gc=0x83d01d0) at recv_core.c:247
#5 0xb74950b4 in qq_input_pending (data=0x83d01d0, source=14,
cond=GAIM_INPUT_READ) at recv_core.c:311
#6 0x080d09bf in gaim_gtk_io_invoke (source=0xffffffe4, condition=4294967268,
data=0x83d0248) at gtkeventloop.c:61
#7 0xb7b7b2bf in g_vasprintf () from /usr/lib/libglib-2.0.so.0
#8 0xb7b55c02 in g_main_depth () from /usr/lib/libglib-2.0.so.0
#9 0xb7b56cf8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#10 0xb7b57030 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0xb7b57673 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#12 0xb7e1bb33 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x080fcf37 in main (argc=1, argv=0xbffff9a4) at main.c:965
(gdb)
我看到openqq里面有很多类似 g_return_if_fail (gc != NULL && data != NULL && data_len != 0);这样的代码。
我找不到g_return_if_fail的原定义。不过我对整个用法很迷惑,觉得他们中间的关系应该是或的关系才对,怎么会是并且的关系呢。请指教。谢谢。 |
|