This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GC_DEBUG patch, again


Here is a revision of the GC_DEBUG patch for the current, post-6.3-merge
tree.  Most of the remaining patch is to libjava/boehm.cc.

In line with Bryce's recent changes, I changed the configury approach
to support a flag --enable-gc-debug in both libjava and the gc directory.

This does not support dynamically enabling GC debugging in a production
runtime.  That may eventually be possible, but it's definitely nontrivial.
In a sense, this is really a clean-up patch: It cleans up the libjava-GC interface,
and makes GC_DEBUG, which was partially implemented before, somewhat usable.

This still includes a minor GC patch, since the support for GC_PRINT_BACK_HEIGHT
(which tests for data structures that are risky with conservative GC)
deadlocked with multiple threads.  This will also go into the upstream GC.

Assuming this passes some more testing, is this OK for the trunk?

Hans

Boehm-gc ChangeLog:

2004-08-26  Hans Boehm  <Hans.Boehm@hp.com>

	* backgraph.c, gc_priv.h (GC_traverse_back_graph,
	GC_print_back_graph_stats): split GC_traverse_back_graph.
	* finalize.c (GC_notify_or_invoke_finalizers): also call
	GC_print_back_graph_stats.
	* alloc.c, finalize.c, gc_priv.h (GC_generate_random_backtrace_no_gc,
	GC_print_back_height): Move delarations to header file.
	* configure.ac: rename --enable-full-debug to --enable-gc-debug.
	

Libjava ChangeLog:

2004-08-26  Hans Boehm  <Hans.Boehm@hp.com>

	* configure.in: Handle --enable-gc-debug.
	* include/config.h.in (LIBGCJ_GC_DEBUG): Add.
	* boehm.cc: Include gc_mark.h, javaxfc.h, but no GC private files.
	Rearrange include file order.
	(GC_DEBUG): Set if LIBGCJ_GC_DEBUG is set.
	(GC_finalize_all, GC_debug_generic_malloc): Don't declare.
	(disable_gc_mutex): Delete along with all references.
	(_Jv_MarkObj, _Jv_MarkArray): Use public types,
	adjust for debug header size.
	(_Jv_AllocObj, _Jv_allocPtrFreeObj): Define out of line for
	debug case.
	(_Jv_AllocArray): Declare min_heap_addr only if needed.
	(gcj_describe_type_fn): New.
	(_Jv_InitGC): Use GC_new_free_list, GC_new_proc, and GC_new_kind.
	Register gcj_describe_type_fn.
	* include/boehm-gc.h:
	(_Jv_AllocObj, _Jv_allocPtrFreeObj):
	Don't define, but declare, for debug case.
	* java/lang/natObject.cc:
	(GC_DEBUG): Define if LIBGCJ_GC_DEBUG is set.

Attachment: 082604gcdiffs2
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]