comp.lang.ada
 help / color / mirror / Atom feed
Subject: Re: stacktrace on linux
Date: Fri, 15 Aug 2003 11:44:16 +0200
Date: 2003-08-15T11:44:16+02:00	[thread overview]
Message-ID: <3f3cab74@epflnews.epfl.ch> (raw)
In-Reply-To: bhfd36$42gt$1@ID-169866.news.uni-berlin.de

As piece of advice: do not switch optimization on when you want to debug 
a program.

Related to your problem, I am afraid you are not using the "Ada enabled" 
gdb that comes with GNAT. Try the command "set language ada" in the gdb 
prompt. If the result is "Unknown language 'ada'", you have to set in 
your path first the gdb distributed with GNAT.

Rodrigo

Martin Moosbrucker wrote:
> Hi,
> 
> I'd like to get the stack trace of a program running on a RedHat 7.3
> operating system as I get it on a windows2000 os.
> 
> The stack trace on windows looks like that:
> 
> 1/ 0
> Exception name: CONSTRAINT_ERROR
> Message: stack_trace.adb:13
> Call stack traceback locations:
> 0x40144b 0x4015f3 0x401806 0x401265 0x401103 0x77e8ca8e
> 0040144B in testexception.outer.inner at stack_trace.adb:13
> 004015F3 in testexception.outer at stack_trace.adb:19
> 00401806 in testexception at stack_trace.adb:26
> 00401265 in ?? at crt1.c:0
> 00401103 in ?? at crt1.c:0
> 77E8CA8E in ?? at fake:0
> 
> on RedHat I don't get any information of the lines in my sourcecode:
> 
> Exception name: CONSTRAINT_ERROR
> Message: stack_trace.adb:13
> Call stack traceback locations:
> 0x804a090 0x804a3e3 0x804a6df 0x8049d91 0x42017497
> 0x804a090 in ?? at ??:0
> 0x804a3e3 in ?? at ??:0
> 0x804a6df in ?? at ??:0
> 0x8049d91 in ?? at ??:0
> 0x42017497 in ?? at ??:0
> 
> I am using the following compile / bind and link switches on both ops:
> 
> compiler: -O3 -gnatf -gnatwu -gnato -funwind-tables
> binder: -f -E
> linker: -g -i
> 
> The source code generating the exceptions above:
> 
> with Ada.Exceptions;
> with Gnat.Traceback.Symbolic;
> 
> with Text_Io;
> use  Text_Io;
> 
> procedure Testexception is
> 
> type Float_32 is digits  6 range Interfaces.Ieee_Float_32'First ..
>                                    Interfaces.Ieee_Float_32'Last;
> 
>   procedure Outer is
>     procedure Inner(y:integer) is
>       x : integer;
>     begin
>       text_io.put_line("1/"&integer'image(y));
>       X := 1 / Y;
>       x:=x**2;
>       text_io.put_line("finished." & integer'image(x));
>     end;
>   begin
>     begin
>       Inner(0);
>     exception
>       when E : others =>
> Text_Io.Put_Line(Ada.Exceptions.Exception_Information(E) &
> Gnat.Traceback.Symbolic.Symbolic_Traceback(E));
>     end;
>   end;
> begin
> 
> Text_Io.Put_Line("Float_32'Machine_Overflows"&Boolean'Image(Float_32'Machine
> _Overflows));
>   Outer;
> exception
>   when e : others =>
> Text_io.put_line(Ada.Exceptions.Exception_Information(E) &
> Gnat.Traceback.Symbolic.Symbolic_Traceback(E));
> end;
> 
> Thanks,
> Martin
> 
> 
> 





  parent reply	other threads:[~2003-08-15  9:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-14  7:17 stacktrace on linux Martin Moosbrucker
2003-08-14 14:39 ` Ludovic Brenta
2003-08-15  9:44 `  [this message]
2003-08-17 18:31   ` Gautier Write-only
2003-08-15 19:26 ` Simon Wright
2003-08-19  7:50 ` nicolas
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox