Imported and merged Boehm GC 7.0
[cacao.git] / src / mm / boehm-gc / doc / README.environment
index 686e948250b6332c89b452ee703d86e19b5d50f2..d50d37094c79ceedeb62db891375607d5fd4cc0f 100644 (file)
@@ -15,11 +15,11 @@ GC_LOOP_ON_ABORT - Causes the collector abort routine to enter a tight loop.
                   result in an infinite loop in a handler, allowing
                   similar debugging techniques.
 
-GC_PRINT_STATS - Turn on as much logging as is easily feasible without
-                adding signifcant runtime overhead.  Doesn't work if
-                the collector is built with SMALL_CONFIG.  Overridden
-                by setting GC_quiet.  On by default if the collector
-                was built without -DSILENT.
+GC_PRINT_STATS - Turn on GC logging.  Not functional with -DSMALL_CONFIG.
+
+GC_LOG_FILE - The name of the log file.  Stderr by default.
+
+GC_PRINT_VERBOSE_STATS - Turn on even more logging.
 
 GC_DUMP_REGULARLY - Generate a GC debugging dump GC_dump() on startup
                    and during every collection.  Very verbose.  Useful
@@ -47,7 +47,7 @@ GC_NPROCS=<n> - Linux w/threads only.  Explicitly sets the number of processors
                first spinning.
 
 GC_MARKERS=<n> - Linux w/threads and parallel marker only.  Set the number
-               of marker threads.  This is normaly set to the number of
+               of marker threads.  This is normally set to the number of
                processors.  It is safer to adjust GC_MARKERS than GC_NPROCS,
                since GC_MARKERS has no impact on the lock implementation.
 
@@ -94,29 +94,6 @@ GC_RETRY_SIGNALS, GC_NO_RETRY_SIGNALS - Try to compensate for lost
                     was turned into a runtime flag to enable last-minute
                     work-arounds.
 
-GC_IGNORE_FB[=<n>] -  (Win32 only.) Try to avoid treating a mapped
-               frame buffer as part of the root set.  Certain (higher end?)
-               graphics cards seems to result in the graphics memory mapped
-               into the user address space as writable memory.
-               Unfortunately, there seems to be no systematic way to
-               identify such memory.  Setting the environment variable to n
-               causes the collector to ignore mappings longer than n MB.
-               The default value of n is currently 15.  (This should cover
-               a 16 MB graphics card, since the mapping appears to be slightly
-               shorter than all of graphics memory.  It will fail if a dll
-               writes pointers to collectable objects into a data segment
-               whose length is >= 15MB.  Empirically that's rare, but
-               certainly possible.)  WARNING: Security sensitive applications
-               should probably disable this feature by setting
-               GC_disallow_ignore_fb, or by building with -DNO_GETENV,
-               since small values could force collection of reachable
-               objects, which is conceivably a (difficult to exploit)
-               security hole.  GC_IGNORE_FB values less than 3 MB
-               are never honored, eliminating this risk for most,
-               but not all, applications.  This feature is likely to disappear
-               if/when we find a less disgusting "solution".
-               IN VERSION 6.4 AND LATER, THIS SHOULD BE UNNECESSARY.
-
 The following turn on runtime flags that are also program settable.  Checked
 only during initialization.  We expect that they will usually be set through
 other means, but this may help with debugging and testing:
@@ -149,3 +126,10 @@ GC_ALL_INTERIOR_POINTERS - Turns on GC_all_interior_pointers and thus interior
                           pointer recognition.
 
 GC_DONT_GC - Turns off garbage collection.  Use cautiously.
+
+GC_TRACE=addr - Intended for collector debugging.  Requires that the collector
+               have been built with ENABLE_TRACE defined.  Causes the debugger
+               to log information about the tracing of address ranges containing
+               addr.  Typically addr is the address that contains a pointer to
+               an object that mysteriously failed to get marked.  Addr must be
+               specified as a hexadecimal integer.