>>>> "Adrian" == Adrian Aichner
<aichner(a)ecf.teradyne.com> writes:
>>>> "Martin" == Martin Buchholz
<martin(a)xemacs.org> writes:
>>>> "APA" == Adrian Aichner
<aichner(a)ecf.teradyne.com> writes:
Martin> Please test out this patch. Especially Adrian, I would
Martin> appreciate if you could give me a `thumbs up' by Sunday.
Martin> Untested on NT, as usual.
Adrian> How about this Backtrace then? :-)
Adrian> This occured after rebuilding with you patches successfully applied.
Adrian> I assume it's correct that only
Adrian> event-msw.c had to be re-compiled (for WidowsNT native build)
Adrian> before link.exe @C:\WINNT\Profiles\AichnerA\tmp\nma00176. That's what
Adrian> xemacs.mak did anyway.
Adrian> Here's the VC++ 5.0 CallStack, edited for bandwidth:
Adrian> allocate_lisp_storage(unsigned int 2044) line 482 + 3 bytes
Adrian> Fcons(Lisp_Object {...}, Lisp_Object {...}) line 1143 + 71 bytes
Adrian> list2(Lisp_Object {...}, Lisp_Object {...}) line 1197 + 15 bytes
Adrian> throw_or_bomb_out(Lisp_Object {...}, Lisp_Object {...}, int 0, Lisp_Object
Adrian> {...}, Lisp_Object {...}) line 1432 + 13 bytes
Adrian> Fthrow(Lisp_Object {...}, Lisp_Object {...}) line 1468 + 28 bytes
Adrian> Fsignal(Lisp_Object {...}, Lisp_Object {...}) line 2036 + 18 bytes
Adrian> throw_or_bomb_out(Lisp_Object {...}, Lisp_Object {...}, int 0, Lisp_Object
Adrian> {...}, Lisp_Object {...}) line 1432 + 29 bytes
Adrian> ABOVE THREE LINES REPEATED 326 TIMES
Adrian> Fthrow(Lisp_Object {...}, Lisp_Object {...}) line 1468 + 28 bytes
Another one of these just happened after I had used CVS menus and
played one game of tetris. This time the story ends right in Fcons.
The comments in throw_or_bomb_out() in src/eval.c are scarey enough to
give some clue to the knowledgable. All I can make of it is this:
There is a warning about infinite recursion, which is what seems to be
happening here:
'top-level. If this tag doesn't exist (happens during the
initialization stages) we would get in an infinite recursive
Fsignal/Fthrow loop, so instead we bomb out to the
really-early-error-handler.
There problem is: We don't bomb out in throw_or_bomb_out():
if (!bomb_out_p)
tag = Fsignal (Qno_catch, list2 (tag, val));
else
call1 (Qreally_early_error_handler, Fcons (sig, data));
Fcons(Lisp_Object {...}, Lisp_Object {...}) line 1143 + 125 bytes
list2(Lisp_Object {...}, Lisp_Object {...}) line 1197 + 15 bytes
throw_or_bomb_out(Lisp_Object {...}, Lisp_Object {...}, int 0, Lisp_Object {...},
Lisp_Object {...}) line 1432 + 13 bytes
Fthrow(Lisp_Object {...}, Lisp_Object {...}) line 1468 + 28 bytes
Fsignal(Lisp_Object {...}, Lisp_Object {...}) line 2036 + 18 bytes
throw_or_bomb_out(Lisp_Object {...}, Lisp_Object {...}, int 0, Lisp_Object {...},
Lisp_Object {...}) line 1432 + 29 bytes
Fthrow(Lisp_Object {...}, Lisp_Object {...}) line 1468 + 28 bytes
Fsignal(Lisp_Object {...}, Lisp_Object {...}) line 2036 + 18 bytes
throw_or_bomb_out(Lisp_Object {...}, Lisp_Object {...}, int 0, Lisp_Object {...},
Lisp_Object {...}) line 1432 + 29 bytes
<MANY LINES DELETED BY ADRIAN>
Fthrow(Lisp_Object {...}, Lisp_Object {...}) line 1468 + 28 bytes
Fsignal(Lisp_Object {...}, Lisp_Object {...}) line 2036 + 18 bytes
throw_or_bomb_out(Lisp_Object {...}, Lisp_Object {...}, int 0, Lisp_Object {...},
Lisp_Object {...}) line 1432 + 29 bytes
HTH,
Adrian
Adrian> It occured after XEmacs had started, reading my extensive
Adrian> site-start.el and .emacs (crashes usually don't happen with
Adrian> -no-init-file -no-site-file, sorry). Hitting the News toolbar button,
Adrian> which starts Gnus for me, crashed XEmacs-21.0-b5++++++
Adrian> Thanks for looking into this! I am confident that this is the right
Adrian> way to a robust XEmacs, EVEN on WindowsNT ;->
Adrian> I'll try my best to give crash feedback. Let me know what additional
Adrian> information might help.
Adrian> Regards,
Adrian> Adrian
Martin> 1998-12-11 Martin Buchholz <martin(a)xemacs.org>
Martin> * events.h (struct timeout_data):
Martin> * event-tty.c (tty_timeout_to_emacs_event):
Martin> * event-msw.c (mswindows_wm_timer_callback):
Martin> * event-Xt.c (Xt_timeout_to_emacs_event):
Martin> * event-msw.c (mswindows_cancel_dispatch_event):
Martin> Make sure Lisp_Objects inside events are initialized to
Adrian> Qnil, not
Martin> Qnull_pointer, which is now illegal.