15
15
result in an infinite loop in a handler, allowing
16
16
similar debugging techniques.
18
GC_PRINT_STATS - Turn on as much logging as is easily feasible without
19
adding signifcant runtime overhead. Doesn't work if
20
the collector is built with SMALL_CONFIG. Overridden
21
by setting GC_quiet. On by default if the collector
22
was built without -DSILENT.
18
GC_PRINT_STATS - Turn on GC logging. Not functional with -DSMALL_CONFIG.
20
GC_LOG_FILE - The name of the log file. Stderr by default.
22
GC_PRINT_VERBOSE_STATS - Turn on even more logging.
24
24
GC_DUMP_REGULARLY - Generate a GC debugging dump GC_dump() on startup
25
25
and during every collection. Very verbose. Useful
49
49
GC_MARKERS=<n> - Linux w/threads and parallel marker only. Set the number
50
of marker threads. This is normaly set to the number of
50
of marker threads. This is normally set to the number of
51
51
processors. It is safer to adjust GC_MARKERS than GC_NPROCS,
52
52
since GC_MARKERS has no impact on the lock implementation.
94
94
was turned into a runtime flag to enable last-minute
97
GC_IGNORE_FB[=<n>] - (Win32 only.) Try to avoid treating a mapped
98
frame buffer as part of the root set. Certain (higher end?)
99
graphics cards seems to result in the graphics memory mapped
100
into the user address space as writable memory.
101
Unfortunately, there seems to be no systematic way to
102
identify such memory. Setting the environment variable to n
103
causes the collector to ignore mappings longer than n MB.
104
The default value of n is currently 15. (This should cover
105
a 16 MB graphics card, since the mapping appears to be slightly
106
shorter than all of graphics memory. It will fail if a dll
107
writes pointers to collectable objects into a data segment
108
whose length is >= 15MB. Empirically that's rare, but
109
certainly possible.) WARNING: Security sensitive applications
110
should probably disable this feature by setting
111
GC_disallow_ignore_fb, or by building with -DNO_GETENV,
112
since small values could force collection of reachable
113
objects, which is conceivably a (difficult to exploit)
114
security hole. GC_IGNORE_FB values less than 3 MB
115
are never honored, eliminating this risk for most,
116
but not all, applications. This feature is likely to disappear
117
if/when we find a less disgusting "solution".
118
IN VERSION 6.4 AND LATER, THIS SHOULD BE UNNECESSARY.
120
97
The following turn on runtime flags that are also program settable. Checked
121
98
only during initialization. We expect that they will usually be set through
122
99
other means, but this may help with debugging and testing:
149
126
pointer recognition.
151
128
GC_DONT_GC - Turns off garbage collection. Use cautiously.
130
GC_TRACE=addr - Intended for collector debugging. Requires that the collector
131
have been built with ENABLE_TRACE defined. Causes the debugger
132
to log information about the tracing of address ranges containing
133
addr. Typically addr is the address that contains a pointer to
134
an object that mysteriously failed to get marked. Addr must be
135
specified as a hexadecimal integer.