This is the mail archive of the insight@sourceware.cygnus.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

SIGSEGV in Insight cleanup


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]