[前][次][番号順一覧][スレッド一覧]

ruby-changes:62418

From: Koichi <ko1@a...>
Date: Wed, 29 Jul 2020 17:46:06 +0900 (JST)
Subject: [ruby-changes:62418] dd6f5aba0e (master): add debug output.

https://git.ruby-lang.org/ruby.git/commit/?id=dd6f5aba0e

From dd6f5aba0e07c6e65cad026317d1a77dbb72f56e Mon Sep 17 00:00:00 2001
From: Koichi Sasada <ko1@a...>
Date: Wed, 29 Jul 2020 17:45:02 +0900
Subject: add debug output.


diff --git a/transient_heap.c b/transient_heap.c
index 3c1d9a3..c626f8d 100644
--- a/transient_heap.c
+++ b/transient_heap.c
@@ -732,9 +732,24 @@ transient_heap_block_evacuate(struct transient_heap* theap, struct transient_hea https://github.com/ruby/ruby/blob/trunk/transient_heap.c#L732
     }
 }
 
+static const char *
+transient_heap_status_cstr(enum transient_heap_status status)
+{
+    switch (status) {
+      case transient_heap_none: return "none";
+      case transient_heap_marking: return "marking";
+      case transient_heap_escaping: return "escaping";
+    }
+    return NULL; // unreachable;
+}
+
 static void
 transient_heap_update_status(struct transient_heap* theap, enum transient_heap_status status)
 {
+    RUBY_DEBUG_LOG("%s -> %s",
+                   transient_heap_status_cstr(theap->status),
+                   transient_heap_status_cstr(status));
+
     TH_ASSERT(theap->status != status);
     theap->status = status;
 }
@@ -873,6 +888,8 @@ rb_transient_heap_update_references(void) https://github.com/ruby/ruby/blob/trunk/transient_heap.c#L888
 void
 rb_transient_heap_start_marking(int full_marking)
 {
+    RUBY_DEBUG_LOG("full?:%d", full_marking);
+
     struct transient_heap* theap = transient_heap_get();
 
     if (TRANSIENT_HEAP_DEBUG >= 1) fprintf(stderr, "!! rb_transient_heap_start_marking objects:%d blocks:%d promtoed:%d full_marking:%d\n",
@@ -921,6 +938,8 @@ rb_transient_heap_start_marking(int full_marking) https://github.com/ruby/ruby/blob/trunk/transient_heap.c#L938
 void
 rb_transient_heap_finish_marking(void)
 {
+    RUBY_DEBUG_LOG("", 0);
+
     struct transient_heap* theap = transient_heap_get();
 
     if (TRANSIENT_HEAP_DEBUG >= 1) fprintf(stderr, "!! rb_transient_heap_finish_marking objects:%d, marked:%d\n",
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]