[M3commit] CVS Update: cm3

Rodney M. Bates rodney at elego.de
Fri Sep 26 01:23:20 CEST 2008

CVSROOT:	/usr/cvs
Changes by:	rodney at birch.	08/09/26 01:23:20

Modified files:
	cm3/m3-sys/m3gdb/gdb/gdb/: m3-eval.c m3-util.c m3-valprint.c 

Log message:
	gcc 4.3.0, from which the latest m3cc is derived,
	raises debugger hostility to new heights as far
	as finding static links and their target activation
	records is concerned.  It could even be necessary
	to rework m3cc and m3gdb to use dwarf2 or dwarf3
	to fix this.
	This commit is a temporary, incomplete fix.  As
	long as nested procedures are called only as procedure
	constants, it should work.  If a nested procedure
	is called through a formal parameter, m3gdb might
	find the wrong instance of a statically containing
	procedure, when accessing the containing procedure's
	variables nonlocally.  For now, m3gdb warns whenever
	accessing variables nonlocally.
	NOTE: There are additional, related problems with
	debug output as a result of gcc 4.3.0's handling
	of nonlocal variable access.  If a formal parameter
	is accessed nonlocally anywhere in the program,
	accessing it locally in m3gdb by 'info arg',
	'frame', or 'backtrace' gives a wrong value, while
	'info loc' will give two values for a parameter,
	only one of which is right.  The 'print' command
	appears to be right in such cases, as far as tested
	to date.

More information about the M3commit mailing list