Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Debian GCC (http://www.linux-archive.org/debian-gcc/)
-   -   Bug#582452: gnat-4.3: symbolic tracebacks broken; raise Storage_Error (http://www.linux-archive.org/debian-gcc/373947-bug-582452-gnat-4-3-symbolic-tracebacks-broken-raise-storage_error.html)

Ludovic Brenta 05-20-2010 08:44 PM

Bug#582452: gnat-4.3: symbolic tracebacks broken; raise Storage_Error
 
Package: gnat-4.3
Version: 4.3.0-1
Severity: important

(from Björn Persson):

with Ada.Text_IO;
with GNAT.Traceback.Symbolic;

procedure Stack_Trace_Test is

Oopsie : Exception;

procedure Eledile is
begin
raise Oopsie with "How unfortunate!";
end Eledile;

procedure Crocophant is
begin
Eledile;
end Crocophant;

begin
Crocophant;
exception
when E : others =>
Ada.Text_IO.Put_Line(GNAT.Traceback.Symbolic.Symbo lic_Traceback(E));
end Stack_Trace_Test;

$ gnatmake stack_trace_test.adb -g -bargs -E
gcc-4.3 -c -g stack_trace_test.adb
gnatbind -E -x stack_trace_test.ali
gnatlink stack_trace_test.ali -g
$ ./stack_trace_test

Execution terminated by unhandled exception
Exception name: STORAGE_ERROR
Message: stack overflow (or erroneous memory access)
Call stack traceback locations:
0xb7e7c56b
$ addr2line --functions --exe=stack_trace_test 0xb7e7c56b
??
??:0


--
Ludovic Brenta.



--
To UNSUBSCRIBE, email to debian-gcc-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: c6c8b41d49bb2bc5327aefb09a82f799@localhost">http://lists.debian.org/c6c8b41d49bb2bc5327aefb09a82f799@localhost

Ludovic Brenta 05-20-2010 08:51 PM

Bug#582452: gnat-4.3: symbolic tracebacks broken; raise Storage_Error
 
I investigated and discovered this is a genuine bug in the patched

convert_addresses which now expects an additional argument; I never

noticed this upstream change:



2007-04-06 Olivier Hainque <hainque@adacore.com>



* adaint.c:

(convert_addresses): Adjust prototype and dummy definition to expect

an

extra file_name argument.



* gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,

filling the now expected file_name argument with the appropriate

argv[0] expansion.

(__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.

(tracebk): Array of void * instead of char *, corresponding to what

convert_addresses expects.

(exename): New static global, to hold the executable file name to be

used in all convert_addresses invocations.

(gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type

change.

(__gnat_gmem_a2l_initialize): Resolve exename.

(__gnat_convert_addresses): Use exename as the convert_addresses

file_name argument.



* g-trasym.adb (Symbolic_Traceback): Adjust signature of imported

"convert_addresses", now expecting a filename argument. Import the

necessary entities to compute the filename to use and pass it to

convert_addresses.



(Subversion revision 123544 on the trunk). Consequently I never

adjusted convert_addresses.c accordingly.



This is quite embarrassing as it means that both gnat-4.3 and

gnat-4.4 are broken in this respect.



--

Ludovic Brenta.





--
To UNSUBSCRIBE, email to debian-gcc-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 247db3c7ce23fb8c2d0b71b5638e4c19@localhost">http://lists.debian.org/247db3c7ce23fb8c2d0b71b5638e4c19@localhost

Ludovic Brenta 05-20-2010 08:53 PM

Bug#582452: gnat-4.3: symbolic tracebacks broken; raise Storage_Error
 
reassign 582452 gnat-4.4

thanks



I will not fix this bug in gnat-4.3, only in gnat-4.4.



--

Ludovic Brenta.





--
To UNSUBSCRIBE, email to debian-gcc-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: efeccfb2efcd70909c2a2de92178771e@localhost">http://lists.debian.org/efeccfb2efcd70909c2a2de92178771e@localhost


All times are GMT. The time now is 04:34 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.