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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b200e62f21981276 X-Google-Attributes: gid103376,public From: stt@houdini.camb.inmet.com (Tucker Taft) Subject: Re: GNAT compiler problem? Date: 1998/08/07 Message-ID: #1/1 X-Deja-AN: 378890299 Sender: news@inmet.camb.inmet.com (USENET news) X-Nntp-Posting-Host: houdini.camb.inmet.com References: <35CA2A91.1DB668CF@netgate.net> Organization: Intermetrics, Inc. Newsgroups: comp.lang.ada Date: 1998-08-07T00:00:00+00:00 List-Id: Rusnak (jrusnakzzz@netgate.net) wrote: : I have been coding in Ada on a large project recently and until recently : have had little problems. Unfortunately, : my program recenlty coughed up a Storage_Error which surprised me. : After removing my new code and putting it back : in piece by piece, I got a genuine segmentation fault. I used gdb to : help analyze the code, and found that it was crashing on : a type definition. (The actual compiler-mangled procedure name was : somethling like "my_package___read"). The type definition was a type : derived off : of a (base) tagged type. : I then set a breakpoint there and reran the code. After stepping : through the code after the first break, I found that the code execution : was going through an infinite loop : on type definitions: that is to say, the call to : "my_package___read" (which the debugger indicated as originating from : the type : definition) called a procedure named something like : "base_package___read_2" (originating at the base class type : definition). It then : called "my_package_read" again and so the cycle goes. I assume that : the "read" is an internal procedure defined internally to the compiler, : since no such procedure exists in either of the packages (name mangling : in Ada by this compiler seems rather straightforward). The "__read" operation is probably the compiler-generated 'Read routine (a "stream" attribute), which is used automatically as part of the distribution annex for message "unmarshalling", as well as by explicit uses of the 'Read attribute and 'Input attribute. Are you making use of any of these features? : Has anyone seen this behavior before? : Thanks : -John -- -Tucker Taft stt@inmet.com http://www.inmet.com/~stt/ Intermetrics, Inc. Burlington, MA USA