summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2021-08-23 10:49:14 -0400
committerPeter Zhu <peter@peterzhu.ca>2021-08-23 10:54:53 -0400
commiteddd369e7378ec762cf81a226aec1a2b8719bf7a (patch)
tree0722311cc0ce1d4d8474935a42b01a9428f127de /misc
parentb2e2cf2dedd104acad8610721db5e4d341f135ef (diff)
Revert "[Feature #18045] Implement size classes for GC"
This reverts commits 48ff7a9f3e47bffb3e4d067a12ba9b936261caa0 and b2e2cf2dedd104acad8610721db5e4d341f135ef because it is causing crashes in SPARC solaris and i386 debian.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4764
Diffstat (limited to 'misc')
-rwxr-xr-xmisc/lldb_cruby.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py
index 8461eea8b3..3f0479b51f 100755
--- a/misc/lldb_cruby.py
+++ b/misc/lldb_cruby.py
@@ -330,6 +330,9 @@ def lldb_inspect(debugger, target, result, val):
elif flType == RUBY_T_HASH:
result.write("T_HASH: %s" % flaginfo)
append_command_output(debugger, "p *(struct RHash *) %0#x" % val.GetValueAsUnsigned(), result)
+ elif flType == RUBY_T_PAYLOAD:
+ result.write("T_PAYLOAD: %s" % flaginfo)
+ append_command_output(debugger, "p *(struct RPayload *) %0#x" % val.GetValueAsUnsigned(), result)
elif flType == RUBY_T_BIGNUM:
tRBignum = target.FindFirstType("struct RBignum").GetPointerType()
val = val.Cast(tRBignum)
@@ -533,15 +536,14 @@ class HeapPageIter:
self.target = target
self.start = page.GetChildMemberWithName('start').GetValueAsUnsigned();
self.num_slots = page.GetChildMemberWithName('total_slots').unsigned
- self.slot_size = page.GetChildMemberWithName('size_pool').GetChildMemberWithName('slot_size').unsigned
self.counter = 0
self.tRBasic = target.FindFirstType("struct RBasic")
self.tRValue = target.FindFirstType("struct RVALUE")
def is_valid(self):
heap_page_header_size = self.target.FindFirstType("struct heap_page_header").GetByteSize()
- rvalue_size = self.slot_size
- heap_page_obj_limit = int((HEAP_PAGE_SIZE - heap_page_header_size) / self.slot_size)
+ rvalue_size = self.tRValue.GetByteSize()
+ heap_page_obj_limit = int((HEAP_PAGE_SIZE - heap_page_header_size) / rvalue_size)
return (heap_page_obj_limit - 1) <= self.num_slots <= heap_page_obj_limit
@@ -550,7 +552,7 @@ class HeapPageIter:
def __next__(self):
if self.counter < self.num_slots:
- obj_addr_i = self.start + (self.counter * self.slot_size)
+ obj_addr_i = self.start + (self.counter * self.tRValue.GetByteSize())
obj_addr = lldb.SBAddress(obj_addr_i, self.target)
slot_info = (self.counter, obj_addr_i, self.target.CreateValueFromAddress("object", obj_addr, self.tRBasic))
self.counter += 1