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, WEIRD_QUOTING autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c80fd2eef5d1bef,start X-Google-Attributes: gid103376,public From: Gautier Subject: GNAT.Traceback is back... Date: 2000/05/24 Message-ID: <392C3C90.145FE2AF@maths.unine.ch>#1/1 X-Deja-AN: 626872797 Content-Transfer-Encoding: 7bit X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Trace: 24 May 2000 22:33:20 +0100, mac13-32.unine.ch Organization: Maths - Uni =?iso-8859-1?Q?Neuch=E2tel?= MIME-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-05-24T00:00:00+00:00 List-Id: Hi all. Some mysteries around GNAT.Traceback in GNAT 3.12p for Win32 are not resolved. 1) Does GNAT.Traceback really work on GNAT 3.12p for Win32 ? We know that the .Symbolic child works only for Linux and Solaris, as stated in the user's guide. Yes, I've built with the options "gnatmake -funwind-tables -g tractest -bargs -E", but all I obtain is 0 callback levels (like Christophe Gouiran in his post about that) ! 2) Assume I could obtain more than 0 levels, but I don't have a working package to transform addresses into names. How to do it by calling gdb ? Is there a gdb command for that ? 3) Will GNAT 3.13p bring symbolic call-backs for Win32 ? Below is an expanded version of Christophe's example. Ironically I obtain 2 levels & addresses in GNAT 3.12p for DOS... ______________________________________________________ Gautier -- http://members.xoom.com/gdemont/gsoft.htm ______________________________________________________ with Ada.Text_IO; use Ada.Text_IO; with GNAT.Debug_Utilities; use GNAT.Debug_Utilities; with GNAT.Traceback; use GNAT.Traceback; procedure Tractest is package IIO is new Integer_IO( integer ); use IIO; procedure D(i,j,k:integer; s:string) is... [it raises an exception] procedure C(i,j,k:integer) is... procedure B(i,j:integer) is... procedure A(n:natural) is... begin A(10); exception when others => declare tarray : Tracebacks_Array(1 .. 100); len : integer; begin Call_Chain(tarray, len); new_line; put_line("Unhandled exception in main procedure ""TracTest"" "); put_line("Number of callback levels : " & integer'image(len)); new_line; for i in 1..len loop Put("Level "); Put( i ); Put_Line(" " & Image(tarray(i)) ); end loop; raise; -- -> output exception name & co end; end Tractest;