From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicholas_Karagas@cirilium.com To: insight@sourceware.cygnus.com Subject: SIGSEGV in Insight cleanup Date: Wed, 21 Jun 2000 14:25:00 -0000 Message-id: X-SW-Source: 2000-q2/msg00304.html I've noticed, while debugging Insight with gdb, that Insight always (to the best of my knowledge, at least with remote targets) exits with a SIGSEGV. Specifically, Program received signal SIGSEGV, Segmentation fault. 0x47354e in serial_write (scb=0x0, str=0x291d1f0 "$k#6b", len=5) at serial.c:387 387 return (scb->ops->write (scb, str, len)); This is in remote_kill, when gdb sends the kill packet to the remote target. I've traced the reason to the following series of function calls (the first quit_force originates from exiting Insight and answering yes to the "A debugging session is active. Do you still want to close the debugger?" dialog box): quit_force -> do_final_cleanups -> do_my_cleanups -> gdbtk_cleanup -> Tcl_Finalize -> (many more) -> quit_force By the time the second (recursive) call to quit_force calls remote_kill, the scb has already been cleared. The SIGSEGV only occurs at the end of the program, and is thus usually invisible, but it might be causing memory leaks in NT, etc. I don't know that much about the internals of either Insight or gdb... is this a known problem? Any solutions? Would it help to see the complete (53 function) backtrace? Nicholas Karagas Associate Software Engineer Cirilium Corporation Tempe, AZ (480) 317-1144