diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-01-17 19:43:52 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-01-17 19:43:52 +0900 |
commit | 1a0e0e89965af08c62ee10f2409ccfcc0aa20cb2 (patch) | |
tree | 2520f3877eee04e934936bb74ac57710b7c51223 /misc/lldb_cruby.py | |
parent | 549af505c5587267d114dd5ffb816047e7f22b4f (diff) | |
download | ruby-1a0e0e89965af08c62ee10f2409ccfcc0aa20cb2.tar.gz |
lldb_cruby.py: support RVARGC on T_CLASS [ci skip]
Diffstat (limited to 'misc/lldb_cruby.py')
-rwxr-xr-x | misc/lldb_cruby.py | 3 |
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) |