On 16 Apr 2004, [EMAIL PROTECTED] wrote:
>
>> I don't understand the purpose of this patch, and I think it could
>> raise a disaster if applied: because if node_remove() is called
>> whiilst in SHUTDOWN mode, the node will stay in SHUTDOWN mode,
>> whereas most of its data structures have been cleared.
>>
> How should I attempt to determine what the crash is from? I have a
> "Segmentation fault" message, but I don't see a core dump.
>
> Linux localhost.localdomain 2.4.25-rc1 #3 Sat Apr 3 02:03:05 EST
> 2004 i586
>
> Should I recompile with -g and use GDB?
Breakpoint 1, file_info_hash_remove (fi=0x8458b40) at fileinfo.c:1604
FILEINFO remove 0x8458b40 "Audio Book - Richard Feynman - Lectures on
Physics - The Shrodinger Equation In A Classical Context [1of1].mp3"
(0/17436525 bytes done) sha1=H2SKFLOEFB5QET6EJETCAVACHXMW66HT
fi_gui_fi_removed (fih=1) at fileinfo_gui.c:291
vp_gui_fi_removed (fih=1) at visual_progress_gui.c:330
atom_free (type=3, key=0x85285dc) at atoms.c:452
(gdb) Quit
vp_gui_fi_removed (fih=1) at visual_progress_gui.c:340
Program received signal SIGSEGV, Segmentation fault.
0x40450eba in free () from /lib/libc.so.6
(gdb) bt
#0 0x40450eba in free () from /lib/libc.so.6
#1 0x40450c24 in free () from /lib/libc.so.6
#2 0x401c3110 in g_free () from /usr/lib/libglib-1.2.so.0
#3 0x08094f87 in vp_gui_fi_removed (fih=1) at visual_progress_gui.c:340
#4 0x080b46fa in file_info_hash_remove (fi=0x8458b40) at fileinfo.c:1620
#5 0x080b7bd0 in fi_purge (fih=1) at fileinfo.c:3798
#6 0x080b834b in fi_purge_by_handle_list (list=0x85e9cd0) at fileinfo.c:3749
#7 0x080704db in on_button_fi_purge_clicked (button=0x83d2680, user_data=0x0)
at fileinfo_gui.c:450
#8 0x400cb5f1 in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
#9 0x00009f15 in ?? ()
Cannot access memory at address 0x3e
(gdb)
The debugger is sitting at line #340 of visual_progress_gui.c,
> fi_free_chunks( ((vp_info_t *) v)->chunks_list );
The pointer appears to be valid,
(gdb) p v
$1 = (gpointer *) 0x8458858
(gdb) p ((vp_info_t *) v)->chunks_list
$2 = (GSList *) 0x85e9bf0
/*
* Free chunk list got by calling fi_get_chunks.
*/
void fi_free_chunks(GSList *chunks)
{
GSList *sl;
for (sl = chunks; NULL != sl; sl = g_slist_next(sl)) {
G_FREE_NULL(sl->data);
}
g_slist_free(chunks);
}
Breakpoint 1, fi_free_chunks (chunks=0x860eac8) at fileinfo.c:3615
(gdb) p chunks
$1 = (GSList *) 0x860eac8
(gdb) p sl
$2 = (GSList *) 0x1
(gdb) p sl
$3 = (GSList *) 0x860eac8
(gdb) p sl->data
$4 = 0x84e9e98
Segv is when G_FREE_NULL(sl->data); is called with "0x84e9e98". Not
too helpful. I guess that this was freed previously. I would have to
understand the code to do anything better.
fwiw,
Bill Pringlemeir.
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Gtk-gnutella-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel