A LOOK AT NON-INTRUSIVE CONSERVATIVE GARBAGE COLLECTION by Gustavo Rodriguez-Rivera and Vince Russo Purdue University ABSTRACT Conservative Garbage Collection is used in languages that have only partial information about the location of pointers. Public domain libraries exist that provide conservative garbage collection for C and C++ programs. However, since modification and recompilation of the sources is required, their usage has been limited to programs where source code is available. In this talk we describe a new form of garbage collection called ``non-intrusive GC'' that does not need any source modification nor recompilation. It makes use of the run-time dynamic linker to substitute all allocation calls by calls to the garbage collector at execution time. In this way practically any program can run with garbage collection, even commercial programs where source code is not available. Practical uses of non intrusive garbage collection are: easy migration of existing programs to GC, allocation profiling, and leak detection. Non-intrusive GC requires a higher degree of conservatism to run on any arbitrary program. We explain how the root-set is determined, how the number of false pointers is minimized, some techniques to reduce the number of roots without breaking the conservatism of the GC, and experiences with the current implementation.