From d729c1575e794bb9dafd1f7fcb0740735537504a Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Tue, 28 Jan 2025 10:15:27 -0500 Subject: [PATCH] Output object_id in ObjectSpace.dump Outputs the object ID in the dump for objects that have it seen. --- ext/objspace/objspace_dump.c | 5 +++++ test/objspace/test_objspace.rb | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/ext/objspace/objspace_dump.c b/ext/objspace/objspace_dump.c index 96bd521c79..2b98214f69 100644 --- a/ext/objspace/objspace_dump.c +++ b/ext/objspace/objspace_dump.c @@ -638,6 +638,11 @@ dump_object(VALUE obj, struct dump_config *dc) dump_append_sizet(dc, memsize); } + if (FL_TEST(obj, FL_SEEN_OBJ_ID)) { + dump_append(dc, ", \"object_id\":"); + dump_append_lu(dc, RB_NUM2ULONG(rb_obj_id(obj))); + } + if ((n = rb_obj_gc_flags(obj, flags, sizeof(flags))) > 0) { dump_append(dc, ", \"flags\":{"); for (i=0; i