This is the mail archive of the
insight@sourceware.cygnus.com
mailing list for the Insight project.
SIGSEGV in Insight cleanup
- To: insight at sourceware dot cygnus dot com
- Subject: SIGSEGV in Insight cleanup
- From: Nicholas_Karagas at cirilium dot com
- Date: Wed, 21 Jun 2000 14:24:31 -0700
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