Re: commit -- more signal handling stuff


Subject: Re: commit -- more signal handling stuff
From: Aaron Lehmann (aaronl@vitelus.com)
Date: Sat Jul 15 2000 - 13:05:58 CDT


I kind of like the behavior of Eterm, where it attempts to attach a GDB to
it on segfault. I can imagine that as being useful, but it definately
should be debug-only, as whenever Eterm segfaults I'm running it from some
virtual console and that's where the gdb appears.

> > The important question is, does the core that gets dumped there show you
> > the call stack at the time of the problem (eg segfault) that triggered the
> > signal, or is it just the call stack of your new signal trapping
> > code? Hopefully the former, otherwise the core isn't much use.
> >
>
> It shows the call stack all the way to the abort call. But you needen't
> worry, here's an example (from undoing page numbers):
>
> (gdb) bt
> #0 0x401694e1 in __kill () from /lib/libc.so.6
> #1 0x40169156 in raise (sig=6) at ../sysdeps/posix/raise.c:27
> #2 0x4016a868 in abort () at ../sysdeps/generic/abort.c:88
> #3 0x80bed4a in AP_UnixApp::catchSignals (this=0x83dca58, sig_num=11)
> at ap_UnixApp.cpp:1166
> #4 0x80bec89 in signalWrapper (sig_num=11) at ap_UnixApp.cpp:1145
> #5 <signal handler called>
> #6 0x810a7f2 in UT_Vector::getNthItem (this=0x843bd90, n=0)
> at ut_vector.cpp:163
> #7 0x815e59a in pf_Frag_Strux::getFmtHandle (this=0x843bd70, lid=0)
> at pf_Frag_Strux.cpp:49
> #8 0x815d4c9 in PD_Document::notifyListeners (this=0x84338c8,
> pfs=0x843bd70,
> pcr=0x84459c8) at pd_Document.cpp:456
> #9 0x816996d in pt_PieceTable::_doTheDo (this=0x8434180, pcr=0x84459c8,
> bUndo=1 '\001') at pt_PT_Undo.cpp:209
> #10 0x816a534 in pt_PieceTable::undoCmd (this=0x8434180) at
> pt_PT_Undo.cpp:447
> #11 0x815d92c in PD_Document::undoCmd (this=0x84338c8, repeatCount=0)
> at pd_Document.cpp:592
> #12 0x81398c4 in FV_View::cmdUndo (this=0x843c8a8, count=1) at
> fv_View.cpp:4777
> #13 0x80e6485 in ap_EditMethods::undo (pAV_View=0x843c8a8)
> at ap_EditMethods.cpp:1333
> #14 0x81a5b9c in EV_Keyboard::invokeKeyboardMethod (this=0x83cb810,
> pView=0x843c8a8, pEM=0x837bf60, pData=0xbffff4fa, dataLength=1)
> at ev_Keyboard.cpp:74
> #15 0x81a1fca in ev_UnixKeyboard::keyPressEvent (this=0x83cb810,
> pView=0x843c8a8, e=0x84449d8) at ev_UnixKeyboard.cpp:145
> #16 0x819412f in XAP_UnixFrame::_fe::key_press_event (w=0x83cbc20,
> e=0x84449d8)
> at xap_UnixFrame.cpp:254
>
> #5 is the signal handler call, and everything before that is real abi
> calls.
> sam th
> sam@uchicago.edu
> http://www.abisource.com/~sam/
> ------------ Output from gpg ------------
> gpg: Can't check signature: public key not found
>
>



This archive was generated by hypermail 2b25 : Sat Jul 15 2000 - 13:06:13 CDT