summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2026-01-03 09:27:15 -0500
committerPeter Zhu <peter@peterzhu.ca>2026-01-03 10:43:24 -0500
commit5b87294d2fc84b7039a703cbbd02c7cf50c5b560 (patch)
treeef44ba81f29982fb3955de1a52798b8518ab5ce7
parent65f9c4a06a17368c452bcda7f0e6325ea1d51eba (diff)
Add rb_gc_print_backtrace
-rw-r--r--gc.c8
-rw-r--r--gc/gc.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index f77ee417c5..98e5712ca4 100644
--- a/gc.c
+++ b/gc.c
@@ -129,6 +129,14 @@
#include "builtin.h"
#include "shape.h"
+// TODO: Don't export this function in modular GC, instead MMTk should figure out
+// how to combine GC thread backtrace with mutator thread backtrace.
+void
+rb_gc_print_backtrace(void)
+{
+ rb_print_backtrace(stderr);
+}
+
unsigned int
rb_gc_vm_lock(const char *file, int line)
{
diff --git a/gc/gc.h b/gc/gc.h
index a5edc266e7..097ddb9394 100644
--- a/gc/gc.h
+++ b/gc/gc.h
@@ -108,6 +108,7 @@ MODULAR_GC_FN void rb_gc_initialize_vm_context(struct rb_gc_vm_context *context)
MODULAR_GC_FN void rb_gc_worker_thread_set_vm_context(struct rb_gc_vm_context *context);
MODULAR_GC_FN void rb_gc_worker_thread_unset_vm_context(struct rb_gc_vm_context *context);
MODULAR_GC_FN void rb_gc_move_obj_during_marking(VALUE from, VALUE to);
+MODULAR_GC_FN void rb_gc_print_backtrace();
#endif
#if USE_MODULAR_GC