summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2021-12-20 16:13:34 -0500
committerGitHub <noreply@github.com>2021-12-20 16:13:34 -0500
commit39cf0b5314c206fee5a331dcccd2d80bda11c417 (patch)
tree4b008514feeb040c918e885e8441e5d410ac0507 /gc.c
parent8b1b4e384f05360b2ca1978b6e5bac54193d7928 (diff)
Show whether object is garbage in rb_raw_obj_info()
When using `rp(obj)` for debugging during development, it may be useful to know that an object is soon to be swept. Add a new letter to the object dump for whether the object is garbage. It's easy to forget about lazy sweep.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/5310 Merged-By: XrXr
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 936874daba..5a723762ad 100644
--- a/gc.c
+++ b/gc.c
@@ -13093,13 +13093,14 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj)
const int age = RVALUE_FLAGS_AGE(RBASIC(obj)->flags);
if (is_pointer_to_heap(&rb_objspace, (void *)obj)) {
- APPENDF((BUFF_ARGS, "%p [%d%s%s%s%s%s] %s ",
+ APPENDF((BUFF_ARGS, "%p [%d%s%s%s%s%s%s] %s ",
(void *)obj, age,
C(RVALUE_UNCOLLECTIBLE_BITMAP(obj), "L"),
C(RVALUE_MARK_BITMAP(obj), "M"),
C(RVALUE_PIN_BITMAP(obj), "P"),
C(RVALUE_MARKING_BITMAP(obj), "R"),
C(RVALUE_WB_UNPROTECTED_BITMAP(obj), "U"),
+ C(rb_objspace_garbage_object_p(obj), "G"),
obj_type_name(obj)));
}
else {