[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