[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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.





Reply to: