From: "Björn Lundin" <b.f.lundin@gmail.com>
Subject: Re: How to get nice with GNAT?
Date: Fri, 21 Nov 2014 13:42:02 +0100
Date: 2014-11-21T13:42:02+01:00 [thread overview]
Message-ID: <m4nbrp$96r$1@dont-email.me> (raw)
In-Reply-To: <slrnm6u97f.nrc.lithiumcat@nat.rebma.instinctive.eu>
On 2014-11-21 12:41, Natasha Kerensikova wrote:
> As a user, is there something I can do to improve the traceback
> representation on those platforms?
> Or is it completely in the hands of the GNAT packager/maintainer?
>
I run gnat on Aix/win32/linux32/64
and until recently, I tucked everything related
to stacktrace into a package Stacktrace.
package Stacktrace is
procedure Tracebackinfo(E : Ada.Exceptions.Exception_Occurrence) ;
end Stacktrace;
used as
procedure bla is
...
...
exception
when E: others =>
Stacktrace.Tracebackinfo(E);
end ;
where i called
Ada.Exceptions.Exception_Name(E);
Ada.Exceptions.Exception_Message(E);
Ada.Exceptions.Exception_Information(E);
and output them
however, from Gnat GPL 2014 (64) and gnat fsf on debian Jessie
(gnat 4.9 i think) the Tracebackinfo is not called anymore.
So my current workaround is to print those function directly
like
procedure bla is
...
exception
when E: others =>
declare
Last_Exception_Name : constant String :=
Ada.Exceptions.Exception_Name(E);
Last_Exception_Messsage : constant String :=
Ada.Exceptions.Exception_Message(E);
Last_Exception_Info : constant String :=
Ada.Exceptions.Exception_Information(E);
begin
Log(Last_Exception_Name);
Log("Message : " & Last_Exception_Messsage);
Log(Last_Exception_Info);
Log("addr2line" & " --functions --basenames --exe=" &
Ada.Command_Line.Command_Name & " " &
Stacktrace.Pure_Hexdump(Last_Exception_Info));
end ;
end bla;
the function Pure_Hexdump strips away
everything before the first 0x in the string.
final output is like
2014-11-21 13:33:26.278 SQL.NOT_CONNECTED
2014-11-21 13:33:26.278 Message : Sql.Connect: Not_Connected
2014-11-21 13:33:26.278 Exception name: SQL.NOT_CONNECTED
Message: Sql.Connect: Not_Connected
Call stack traceback locations:
0x5be389 0x5cd93c 0x40c988 0x7fca95a8beab 0x40bab7
2014-11-21 13:33:26.278 addr2line --functions --basenames
--exe=/home/bnl/bnlbot/botstart/bot-1-0/target/bin/back_hitrate 0x5be389
0x5cd93c 0x40c988 0x7fca95a8beab 0x40bab7
and running addr2line gives
addr2line --functions --basenames
--exe=/home/bnl/bnlbot/botstart/bot-1-0/target/bin/back_hitrate 0x5be389
0x5cd93c 0x40c988 0x7fca95a8beab 0x40bab7
sql__connect
sql.adb:432
_ada_back_hitrate
back_hitrate.adb:165
main
b~back_hitrate.adb:761
??
??:0
_start
??:?
A bit clumpsy but good enough for my _hobby_ projects.
--
Björn
next prev parent reply other threads:[~2014-11-21 12:42 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-21 11:41 How to get nice with GNAT? Natasha Kerensikova
2014-11-21 12:42 ` Björn Lundin [this message]
2014-11-21 22:55 ` Randy Brukardt
2014-11-21 23:13 ` Björn Lundin
2014-11-22 9:45 ` How to get nice traceback " Natasha Kerensikova
2014-11-22 9:57 ` Dmitry A. Kazakov
2014-11-24 22:35 ` Randy Brukardt
2014-11-22 10:11 ` How to get nice " gautier_niouzes
2014-11-22 10:40 ` Natasha Kerensikova
2014-11-22 22:44 ` brbarkstrom
2014-11-22 23:24 ` Jeffrey Carter
2014-11-23 18:06 ` Björn Lundin
2014-11-23 16:13 ` brbarkstrom
2014-11-23 16:18 ` J-P. Rosen
2014-11-23 17:02 ` Jeffrey Carter
2014-11-23 17:41 ` brbarkstrom
2014-11-23 19:22 ` Simon Wright
2014-11-23 20:49 ` Jeffrey Carter
2014-11-24 3:05 ` brbarkstrom
2014-11-24 6:25 ` Jeffrey Carter
2014-11-24 14:39 ` brbarkstrom
2014-11-24 17:42 ` Dennis Lee Bieber
2014-11-25 13:45 ` brbarkstrom
2014-11-25 15:07 ` ake.ragnar.dahlgren
2014-11-25 15:51 ` brbarkstrom
2014-11-25 16:52 ` Jeffrey Carter
2014-11-25 19:18 ` G.B.
2014-11-25 20:47 ` brbarkstrom
2014-11-25 22:12 ` Randy Brukardt
2014-11-25 23:30 ` Simon Wright
2014-11-26 1:25 ` G.B.
2014-11-26 7:35 ` Simon Wright
2014-11-26 11:55 ` Georg Bauhaus
2014-11-26 13:06 ` Dmitry A. Kazakov
2014-11-26 13:36 ` brbarkstrom
2014-11-26 21:27 ` Randy Brukardt
2014-11-26 22:38 ` brbarkstrom
2014-11-27 9:01 ` Dmitry A. Kazakov
2014-11-27 13:53 ` brbarkstrom
2014-11-27 17:19 ` Dmitry A. Kazakov
2014-12-01 22:25 ` Randy Brukardt
2014-12-02 8:42 ` Dmitry A. Kazakov
2014-12-03 21:41 ` Randy Brukardt
2014-12-06 12:02 ` Dmitry A. Kazakov
2014-12-08 22:45 ` Randy Brukardt
2014-12-09 8:51 ` Dmitry A. Kazakov
2014-12-09 23:14 ` Brad Moore
2014-12-09 17:59 ` Dmitry A. Kazakov
2014-11-27 8:52 ` Dmitry A. Kazakov
2014-11-26 6:18 ` J-P. Rosen
2014-11-26 7:37 ` Simon Wright
2014-11-26 8:41 ` Dmitry A. Kazakov
2014-11-25 18:33 ` Dennis Lee Bieber
2014-11-26 1:27 ` Dennis Lee Bieber
2014-11-26 3:29 ` brbarkstrom
2014-11-23 18:55 ` brbarkstrom
2014-11-23 19:30 ` brbarkstrom
2014-11-23 22:38 ` Simon Wright
2014-11-24 2:47 ` brbarkstrom
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox