From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,11a62e323672426b X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-05-13 06:34:49 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.uchicago.edu!yellow.newsread.com!bad-news.newsread.com!netaxs.com!newsread.com!newsfeed!nntp.TheWorld.com!not-for-mail From: Robert A Duff Newsgroups: comp.lang.ada Subject: Re: GNAT bending signal handlers Date: 13 May 2003 09:34:48 -0400 Organization: The World Public Access UNIX, Brookline, MA Message-ID: References: <6a6390b8.0305120129.24683c2b@posting.google.com> <3EBFDAB9.441F858D@raytheon.com> <6a6390b8.0305130305.13dfc423@posting.google.com> NNTP-Posting-Host: shell01.theworld.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: pcls4.std.com 1052832888 31103 199.172.62.241 (13 May 2003 13:34:48 GMT) X-Complaints-To: abuse@TheWorld.com NNTP-Posting-Date: Tue, 13 May 2003 13:34:48 +0000 (UTC) User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Xref: archiver1.google.com comp.lang.ada:37274 Date: 2003-05-13T09:34:48-04:00 List-Id: okellogg@freenet.de (Oliver Kellogg) writes: > Mark Johnson wrote in message news:<3EBFDAB9.441F858D@raytheon.com>... > > > > I suggest a look at the "super secret" GNAT Reference Manual for this > > answer. Look for Pragma Interrupt_State (or simply search for "signal") > > to see why various signals are required to implement Ada exceptions. > > Hm, I can't find anything on a pragma Interrupt_State > (looked in gnat-3.15p-unx-docs as well as > http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/gnat_rm.texi?rev=1.12&content-type=text/x-cvsweb-markup > , also searched for "signal".) > > Anyway, I tried adding the following at the start of the main program: > > System.Interrupt_Management.Operations.Install_Default_Action > (System.Interrupt_Management.Interrupt_ID > (System.OS_Interface.SIGSEGV)); > > but it doesn't change the behavior, apparently because > > System.Interrupt_Management.Reserve (System.OS_Interface.SIGSEGV) = > True GNAT supports a pragma Unreserve_All_Interrupts, which I found to be necessary when I wanted to handle SIGINT. I don't know if that's related to your problem... - Bob