From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Extra information in the message string of exceptions.
Date: Wed, 8 Jun 2022 10:04:26 +0200 [thread overview]
Message-ID: <t7pl69$f57$1@gioia.aioe.org> (raw)
In-Reply-To: 574017e3-d354-41b9-87a1-1f3aa6edf4a2n@googlegroups.com
On 2022-06-08 09:31, Jerry wrote:
> On Tuesday, June 7, 2022 at 8:56:00 AM UTC-7, Fabien Chouteau wrote:
>> On Monday, June 6, 2022 at 3:40:38 PM UTC+2, Fabien Chouteau wrote:
>>> But this feature could be activated with a switch only when needed.
>> Well, it turns our this is already implemented in GNAT ^^
>>
>> Example here: https://godbolt.org/z/fcTEaq3xP
> Indeed. The switch is -GNATeE. It provides additional information for the program at that page,
>
> procedure Main is
> procedure Test (A : Integer) is
> type T is range 0 .. 42;
> begin
> Ada.Text_IO.Put_Line (T (A)'Img);
> end;
> begin
> Test (-1);
> end Main;
>
> But has no effect on this program;
>
> procedure CE_2 is
> i : Positive;
> j : Integer := 1;
> begin
> i := -j;
> end CE_2;
The switches are -E for binder and -g for everything else. Try this:
--- test_ce.gpr ----------------------------------------
project Test_CE is
for Source_Files use ("test_ce.adb");
for Main use ("test_ce.adb");
package Binder is
for Default_Switches ("ada") use ("-E");
end Binder;
package Builder is
for Default_Switches ("ada") use ("-g");
end Builder;
package Compiler is
for Default_Switches ("ada") use ("-g");
end Compiler;
package Linker is
for Default_Switches ("ada") use ("-g");
end Linker;
end Test_CE;
--- test_ce.adb ----------------------------------------
with System.Exception_Traces; use System.Exception_Traces;
with System.Traceback.Symbolic;
procedure Test_CE is
i : Positive;
j : Integer := 1;
begin
Trace_On (System.Exception_Traces.Unhandled_Raise);
Set_Trace_Decorator
( System.Traceback.Symbolic.Symbolic_Traceback'Access
);
i := -j;
end Test_CE;
Notes:
1. You can just use Symbolic_Traceback whenever you want. E.g. you can
set an exception handler and dump traceback at the raising point. It is
slow as hell, of course.
2. There are problems getting symbolic traceback working on ARM.
3. This becomes pretty much useless with relocated libraries. I do not
know how to make it work with them.
4. Under Windows you will not get traceback from non-GCC compiled stuff
because it does not understand *.pdb files.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2022-06-08 8:04 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-06 12:59 Extra information in the message string of exceptions Rod Kay
2022-06-06 13:40 ` Fabien Chouteau
2022-06-06 18:40 ` G.B.
2022-06-06 19:24 ` Dmitry A. Kazakov
2022-06-07 11:26 ` Rod Kay
2022-06-07 15:55 ` Fabien Chouteau
2022-06-07 16:41 ` Anh Vo
2022-06-08 7:31 ` Jerry
2022-06-08 8:04 ` Dmitry A. Kazakov [this message]
2022-06-09 2:39 ` Jerry
2022-06-08 9:08 ` Dmitry A. Kazakov
2022-10-27 11:56 ` Rod Kay
2022-10-29 0:35 ` Jerry
2022-10-29 3:10 ` Rod Kay
2022-10-29 6:30 ` Gautier write-only address
2022-10-29 8:59 ` G.B.
2022-11-01 0:05 ` Jerry
2022-06-06 14:31 ` Gautier write-only address
2022-06-07 2:33 ` Randy Brukardt
2022-06-07 11:47 ` Rod Kay
2022-06-07 11:29 ` Rod Kay
2022-06-06 20:14 ` Luke A. Guest
2022-06-07 11:51 ` Rod Kay
2022-06-07 21:06 ` Luke A. Guest
2022-06-06 20:49 ` DrPi
2022-06-06 23:17 ` Jerry
2022-06-07 1:53 ` Gautier write-only address
2022-06-07 2:35 ` Randy Brukardt
2022-06-07 8:07 ` Simon Wright
2022-06-08 7:14 ` Jerry
2022-06-09 8:21 ` Robin Vowels
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox