~ubuntu-branches/ubuntu/quantal/libgc/quantal

« back to all changes in this revision

Viewing changes to doc/README.environment

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Egger
  • Date: 2011-02-19 12:19:56 UTC
  • mfrom: (1.3.2 upstream) (0.1.5 experimental)
  • mto: This revision was merged to the branch mainline in revision 14.
  • Revision ID: james.westby@ubuntu.com-20110219121956-67rb69xlt5nud3v2
Tags: 1:7.1-5
Upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
                   result in an infinite loop in a handler, allowing
16
16
                   similar debugging techniques.
17
17
 
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.
 
19
 
 
20
GC_LOG_FILE - The name of the log file.  Stderr by default.
 
21
 
 
22
GC_PRINT_VERBOSE_STATS - Turn on even more logging.
23
23
 
24
24
GC_DUMP_REGULARLY - Generate a GC debugging dump GC_dump() on startup
25
25
                    and during every collection.  Very verbose.  Useful
47
47
                first spinning.
48
48
 
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.
53
53
 
94
94
                     was turned into a runtime flag to enable last-minute
95
95
                     work-arounds.
96
96
 
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.
119
 
 
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.
150
127
 
151
128
GC_DONT_GC - Turns off garbage collection.  Use cautiously.
 
129
 
 
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.