[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] Re: gcl_signal
From: |
Camm Maguire |
Subject: |
Re: [Gcl-devel] Re: gcl_signal |
Date: |
28 Jun 2004 11:27:56 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Greetings!
Mike Thomas <address@hidden> writes:
> Hi again.
>
> I wrote yesterday:
> > Hi Camm.
> > As a last minute thought before 2.6.2 marches out the door, what do you
> > think of these items?
> > 1. in "usig.c"
> > EXTER char signals_handled[6];
> > 2. in mingw.h there is this:
> > #define OTHER_SIGNALS_HANDLED SIGTERM,SIGKILL,SIGABRT,
> > 3. in "usig2.c" we have:
> > char signals_handled [] = {SIGINT,SIGUSR2,SIGUSR1,SIGIO,SIGALRM,
> > #ifdef OTHER_SIGNALS_HANDLED
> > OTHER_SIGNALS_HANDLED
> > #endif
> > 0};
> > (that is, on Windows, eight items + a zero end element - 9 in all compared
> > to 6 in the declaration in point 1 above) - I'm wondering whether these
> > things might confuse a compiler?
>
> In HEAD I increased the declaration size to 32 to cover the max number of
> signals. I also added a definition of
> INSTALL_SEGMENTATION_CATCHER to mingw.h to address the problem of an
> immediate exit from GCL whenever a seg fault
> occurred on Windows. This allows examination of the Lisp environment from
> the Lisp debugger after a seg fault, so for
> example, the gcc 3.3.3 crash at specfn.o load in the Maxima build is reported
> as appended below. The down side is that
> it stops the problem from dumping out to the C debugger - ie for that you
> need to rebuild without the handler.
>
Is this perhaps due to the way mingw 'fakes' unix signals? My gdb
will first stop at the sigsegv, then proceed to the handler when I
continue. In any case, I think you can break at error and still get a
stack trace across the signal handler to the location of the fault.
This reminds me that we have some sigal_tstack work that needs to go
in for 2.7.0 to deal with C stack overflows...
> > 4. also in "usig.c"
> > void
> > install_default_signals(void)
> > { gcl_signal(SIGFPE, sigfpe1);
> > gcl_signal(SIGPIPE, sigpipe);
> > gcl_signal(SIGINT, sigint);
> > gcl_signal(SIGUSR1, sigusr1);
> > gcl_signal(SIGIO, sigio);
> > gcl_signal(SIGALRM, sigalrm);
> > /*install_segmentation_catcher(); */
> > signals_allowed = sig_normal;
> > }
> > (that is, SIGUSR2 (inserted in signals_handled) is not installed, but
> > SIGPIPE and SIGFPE (not present in the signals_handled vector) are at least
> > passed into the function even if not dealt with.)
>
> This I leave to you to consider. I think it is only a cosmetic issue now,
> but it is late here so...
>
I think the code handles these, but in a different way, as Michael has
described separately.
> > 5. in "main.c" install_segmentation_catcher also runs gcl_signal on SIGSEGV,
> > which is, also, not present in the signals_handled vector.
>
> Not any more.
>
Just wondering if this is helping in any of the known problem areas.
Take care,
> > Cheers
> > Mike Thomas.
>
> .....
> ; - Compiling module "special-functions"
> ; - Loading binary file "binary-gcl/specfn.o"
> Loading binary-gcl/specfn.o
> Error in CONDITIONS::CLCS-LOAD [or a callee]: Caught fatal error [memory may
> be
> damaged]
>
> Fast links are on: do (use-fast-links nil) for debugging
> Broken at FILLARRAY. Type :H for Help.
> 1 (Continue) Retry loading file "binary-gcl/specfn.o".
> 2 Return to top level.
> dbl:MAXIMA>>:bt
>
> #0 FILLARRAY {loc0=#(0.0 0.0 0.0 ...),loc1=(14.0 1.9350643000000001
> 0.16607303
> 300000001 ...),...} [ihs=58]
> #1 CLCS-LOAD {file=("binary-gcl/specfn.o"),args=nil,g2560=(nil
> "binary-gcl/spe
> cfn.o"),loc3=(#...} [ihs=57]
> #2 FUNCALL {loc0=#<compiled-function
> conditions::clcs-load>,loc1="binary-gcl/s
> pecfn.o"} [ihs=56]
> #3 FUNCALL {loc0=#<compiled-function
> conditions::clcs-load>,loc1="binary-gcl/s
> pecfn.o"} [ihs=55]
> #4 LOAD-FILE-OPERATION {} [ihs=48]
> #5 COMPILE-AND-LOAD-OPERATION {} [ihs=44]
> #6 FUNCALL {loc0=make::compile-and-load-operation,loc1=#<FILE:
> specfn>,loc2=:n
> ew-source-and...} [ihs=43]
> #7 FUNCALL {loc0=make::compile-and-load-operation,loc1=#<FILE:
> specfn>,loc2=:n
> ew-source-and...} [ihs=42]
> #8 OPERATE-ON-COMPONENT {} [ihs=36]
> #9 OPERATE-ON-COMPONENTS {} [ihs=31]
> #10 OPERATE-ON-COMPONENT {} [ihs=25]
> #11 OPERATE-ON-COMPONENTS {} [ihs=20]
> #12 OPERATE-ON-COMPONENT {} [ihs=14]
> #13 OPERATE-ON-SYSTEM {} [ihs=9]
> #14 FUNCALL
> {loc0=make:operate-on-system,loc1="maxima",loc2=:compile,loc3=:ver
> bose,loc4=t,lo...} [ihs=8]
> #15 FUNCALL
> {loc0=make:operate-on-system,loc1="maxima",loc2=:compile,loc3=:ver
> bose,loc4=t} [ihs=7]
> #16 TOP-LEVEL {} [ihs=5]
> #17 FUNCALL {loc0=#<compiled-function
> system:top-level>,loc1=nil,loc2=0,loc3=0
> ,loc4=nil,loc5...} [ihs=4]
> NIL
> dbl:MAXIMA>>:help
> dbl:MAXIMA>>:bl
> >> FILLARRAY():
> Local(0): #(0.0 0.0 0.0 ...)
> Local(1): (14.0 1.9350643000000001 0.16607303300000001 ...)
> Local(2): #(0.0 0.0 0.0 ...)
> Local(3): 14.0
> Local(4): 15
> Local(5): 0
> Local(6): #(0.0 0.0 0.0 ...)
> Local(7): 15
> Local(8): NIL
> Local(9): NIL
> Local(10): NIL
> NIL
> dbl:MAXIMA>>
>
>
>
> _______________________________________________
> Gcl-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gcl-devel
>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
- RE: [Gcl-devel] gcl_signal, (continued)
- RE: [Gcl-devel] gcl_signal, Mike Thomas, 2004/06/28
- [Gcl-devel] Re: gcl_signal, Mike Thomas, 2004/06/25
- Re: [Gcl-devel] Re: gcl_signal, Michael Koehne, 2004/06/25
- Re: [Gcl-devel] Re: gcl_signal, Mike Thomas, 2004/06/25
- Re: [Gcl-devel] Re: gcl_signal, Michael Koehne, 2004/06/26
- Re: [Gcl-devel] Re: gcl_signal, Camm Maguire, 2004/06/28
- Re: [Gcl-devel] Re: gcl_signal & sockets, Michael Koehne, 2004/06/28
- RE: [Gcl-devel] Re: gcl_signal & sockets, Mike Thomas, 2004/06/28
- Re: [Gcl-devel] Re: gcl_signal & sockets, Camm Maguire, 2004/06/29
- Re: [Gcl-devel] Re: gcl_signal & sockets, Camm Maguire, 2004/06/29
- Re: [Gcl-devel] Re: gcl_signal,
Camm Maguire <=
- RE: [Gcl-devel] Re: gcl_signal, Mike Thomas, 2004/06/28
- Re: [Gcl-devel] Re: gcl_signal, Camm Maguire, 2004/06/29
- RE: [Gcl-devel] Re: gcl_signal - PS, Mike Thomas, 2004/06/28
- Re: [Gcl-devel] Re: gcl_signal - PS, Camm Maguire, 2004/06/29