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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: How to get nice traceback with GNAT? Date: Sat, 22 Nov 2014 10:57:25 +0100 Organization: cbb software GmbH Message-ID: <1hi875ohcp7m3.1jpsqiuvvind0.dlg@40tude.net> References: Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: wfRpp7ltpEWhI2na6kgpfA.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:23637 Date: 2014-11-22T10:57:25+01:00 List-Id: On Sat, 22 Nov 2014 09:45:16 +0000 (UTC), Natasha Kerensikova wrote: > I didn't mention it in the OP because I'm actually chasing > user exceptions (explicit raise statements), You might find GNAT.Exception_Traces very useful for the purpose. > so I have the power to > improve the exception message. Compare to the traceback, which is to > tied to the compiler internals that a mere user has no power to improve > anything. I can't even guess what is going in GNAT to get so wildly > different outputs on different platforms. It depends on whether the vendor tries to use OS services and the formats of the executable and the stack frames. If you are less dependent on the OS as Janus, I guess is, it is easier to do, but also you will have problems with non-Ada components. What about an exception raised in a callback procedure called from a C-library? Otherwise, it is a quite complicated thing aggravated under Windows by MS vs. MinGW issues. >From my experience of chasing exceptions, the only right solution would be exception contracts. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de