diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-13 23:05:36 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-13 23:05:36 +0000 |
commit | e08a5204e5f7a3c3a15588de39202f9579ba0e79 (patch) | |
tree | 863181355c9339e1361dad10263a322aaabe426e /boehm-gc/doc/debugging.html | |
parent | 7cde58555127f31ba0a5b2a222c81d160e7168e9 (diff) | |
download | gcc-e08a5204e5f7a3c3a15588de39202f9579ba0e79.tar.gz |
libjava:
2004-08-13 Bryce McKinlay <mckinlay@redhat.com>
* configure.in (GCINCS): Don't use "boehm-cflags". Instead, -I
boehm-gc's include dirs.
* configure: Rebuilt.
* include/boehm-gc.h: Include gc_config.h.
boehm-gc:
2004-08-13 Bryce McKinlay <mckinlay@redhat.com>
* configure.ac (gc_cflags): Add -Iinclude.
(AC_CONFIG_HEADERS): New. Configure gc_config.h header.
Don't write DEFS to boehm-cflags file.
* configure: Rebuilt.
* gcj_mlc.c: Check #ifdef GC_GCJ_SUPPORT after including headers.
* specific.c: Check #ifdef GC_LINUX_THREADS after including headers.
* include/gc_config_macros.h: Remove backward-compatibility
redefinitions of GC_ names.
* include/gc.h: Include <gc_config.h>.
2004-08-13 Bryce McKinlay <mckinlay@redhat.com>
Import Boehm GC version 6.3.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85972 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/doc/debugging.html')
-rw-r--r-- | boehm-gc/doc/debugging.html | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/boehm-gc/doc/debugging.html b/boehm-gc/doc/debugging.html index 22273fed4bc..7c65f2bb40a 100644 --- a/boehm-gc/doc/debugging.html +++ b/boehm-gc/doc/debugging.html @@ -47,6 +47,10 @@ The garbage collector generates warning messages of the form <PRE> Needed to allocate blacklisted block at 0x... </pre> +or +<PRE> +Repeated allocation of very large block ... +</pre> when it needs to allocate a block at a location that it knows to be referenced by a false pointer. These false pointers can be either permanent (<I>e.g.</i> a static integer variable that never changes) or temporary. @@ -123,7 +127,8 @@ is commonly caused by data structures that are no longer being used, but were not cleared, or by caches growing without bounds. <LI> Pointer misidentification. The garbage collector is interpreting integers or other data as pointers and retaining the "referenced" -objects. +objects. A common symptom is that GC_dump() shows much of the heap +as black-listed. <LI> Heap fragmentation. This should never result in unbounded growth, but it may account for larger heaps. This is most commonly caused by allocation of large objects. On some platforms it can be reduced @@ -180,6 +185,12 @@ primitives is <TT>gc_typed.h</tt>, or separate out the pointerfree component. <LI> Consider using <TT>GC_malloc_ignore_off_page()</tt> to allocate large objects. (See <TT>gc.h</tt> and above for details. Large means > 100K in most environments.) +<LI> If your heap size is larger than 100MB or so, build the collector with +-DLARGE_CONFIG. This allows the collector to keep more precise black-list +information. +<LI> If you are using heaps close to, or larger than, a gigabyte on a 32-bit +machine, you may want to consider moving to a platform with 64-bit pointers. +This is very likely to resolve any false pointer issues. </ol> <H2>Prematurely Reclaimed Objects</h2> The usual symptom of this is a segmentation fault, or an obviously overwritten |