=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/gc/Attic/backptr.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -p -r1.1.1.1 -r1.2 --- OpenXM_contrib2/asir2000/gc/Attic/backptr.h 1999/12/03 07:39:09 1.1.1.1 +++ OpenXM_contrib2/asir2000/gc/Attic/backptr.h 2000/12/01 09:26:10 1.2 @@ -29,9 +29,11 @@ /* source is heap object ==> *base_p != 0, *offset_p = offset */ /* Returns 1 on success, 0 if source couldn't be determined. */ /* Dest can be any address within a heap object. */ -typedef enum { GC_UNREFERENCED, /* No refence info available. */ +typedef enum { GC_UNREFERENCED, /* No reference info available. */ GC_NO_SPACE, /* Dest not allocated with debug alloc */ GC_REFD_FROM_ROOT, /* Referenced directly by root *base_p */ + GC_REFD_FROM_REG, /* Referenced from a register, i.e. */ + /* a root without an address. */ GC_REFD_FROM_HEAP, /* Referenced from another heap obj. */ GC_FINALIZER_REFD /* Finalizable and hence accessible. */ } GC_ref_kind; @@ -52,5 +54,10 @@ void * GC_generate_random_valid_address(void); /* output. It can often be called from a debugger. The */ /* source in dbg_mlc.c also serves as a sample client. */ void GC_generate_random_backtrace(void); + +/* Print a backtrace from a specific address. Used by the */ +/* above. The client should call GC_gcollect() immediately */ +/* before invocation. */ +void GC_print_backtrace(void *);