summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gc.c12
-rw-r--r--gc.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 58f0790c..fdc32195 100644
--- a/gc.c
+++ b/gc.c
@@ -918,3 +918,15 @@ void gc_hint_func(val *val)
{
(void) val;
}
+
+void gc_report_copies(val *pvar)
+{
+ val *opvar = pvar;
+ val obj = *pvar++;
+
+ for (; pvar < gc_stack_bottom; pvar++) {
+ if (*pvar == obj)
+ printf("%p found at %p (offset %d)\n",
+ (void *) obj, (void *) pvar, (int) (pvar - opvar));
+ }
+}
diff --git a/gc.h b/gc.h
index a945da7d..0e8ac1f5 100644
--- a/gc.h
+++ b/gc.h
@@ -47,6 +47,7 @@ extern int full_gc;
void unmark(void);
void gc_hint_func(val *);
+void gc_report_copies(val *pvar);
extern int gc_enabled;
extern val **gc_prot_top;