[M3commit] CVS Update: cm3

Rodney M. Bates rodney at elego.de
Mon Oct 8 23:44:49 CEST 2007

CVSROOT:	/usr/cvs
Changes by:	rodney at birch.	07/10/08 23:44:49

Modified files:
	cm3/m3-sys/m3gdb/gdb/gdb/: inferior.h infrun.c linespec.c 
	                           m3-eval.c m3-lang.c m3-lang.h 
	                           m3-token.c m3-util.c m3-util.h 
	                           m3-valprint.c solib.c symtab.c 
	cm3/m3-sys/m3gdb/gdb/gdb/doc/: observer.texi 

Log message:
	A group of (internally) related changes:
	1) Rework detection of PM3/CM3 compiler to work earlier, positively
	detect when it's not modula-3 at all, work on stripped executables,
	and be more robust.
	2) Detect which threads implementation and which garbage collector
	implementation is used.  This can only work after libm3core.so has
	been loaded (after a 'start' command or hitting a breakpoint in user
	code), or if libm3core is statically linked in.
	3) Add to the 'info m3' command to show the new information.
	4) Change the 'start' command to go through the runtime's initialization
	before stopping.  It used to stop before any of this, and that meant
	lots of m3gdb commands would not work.  Now it stops just before
	executing _any_ of the module body code blocks.  By this time,
	libm3core.so is loaded, so things work about as well as ever later.
	NOTE: This uses a breakpoint at a place in the runtime (either
	RunMainBodies, for PM3 and friends, or RunMainBody, for CM3).
	If libm3core is dynamically linked, this will require the user to
	go through the ritual of allowing the breakpoint to be made pending
	until the libm3core is loaded.
	5) When the VM-synchronized GC is used, automatically disable it, as it
	would otherwise cause numerous false debugger stops.  This is the
	equivalent of manually adding @M3novm to the command line arguments,
	which you can also do redundantly and harmlessly.
	6) When PThreads are used, automatically set m3gdb to silently pass SIG64
	to the program.  Otherwise, this also would cause false stops.
	7) Fix a bug in handling the linespec <moduleName>.1, meaning the beginning
	of the module initialization block.

More information about the M3commit mailing list