summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-01-17 19:43:52 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-01-17 19:43:52 +0900
commit1a0e0e89965af08c62ee10f2409ccfcc0aa20cb2 (patch)
tree2520f3877eee04e934936bb74ac57710b7c51223
parent549af505c5587267d114dd5ffb816047e7f22b4f (diff)
lldb_cruby.py: support RVARGC on T_CLASS [ci skip]
-rwxr-xr-xmisc/lldb_cruby.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py
index c6c18613d8..d26c44f71e 100755
--- a/misc/lldb_cruby.py
+++ b/misc/lldb_cruby.py
@@ -285,6 +285,9 @@ def lldb_inspect(debugger, target, result, val):
elif flType == RUBY_T_CLASS or flType == RUBY_T_MODULE or flType == RUBY_T_ICLASS:
result.write('T_%s: %s' % ('CLASS' if flType == RUBY_T_CLASS else 'MODULE' if flType == RUBY_T_MODULE else 'ICLASS', flaginfo))
append_command_output(debugger, "print *(struct RClass*)%0#x" % val.GetValueAsUnsigned(), result)
+ tRClass = target.FindFirstType("struct RClass")
+ if not val.Cast(tRClass).GetChildMemberWithName("ptr").IsValid():
+ append_command_output(debugger, "print *(struct rb_classext_struct*)%0#x" % (val.GetValueAsUnsigned() + tRClass.GetByteSize()), result)
elif flType == RUBY_T_STRING:
result.write('T_STRING: %s' % flaginfo)
encidx = ((flags & RUBY_ENCODING_MASK)>>RUBY_ENCODING_SHIFT)