Add T_IMEMO support to lldb

I'm trying to find why a reference to an IMEMO object isn't being
updated
This commit is contained in:
Aaron Patterson 2020-05-07 15:52:29 -07:00
parent ce91c5615c
commit 7574b836a9
No known key found for this signature in database
GPG Key ID: 953170BCB4FFAFC6

View File

@ -236,6 +236,12 @@ def lldb_inspect(debugger, target, result, val):
tRTypedData = target.FindFirstType("struct RMoved").GetPointerType()
val = val.Cast(tRTypedData)
append_command_output(debugger, "p *(struct RMoved *) %0#x" % val.GetValueAsUnsigned(), result)
elif flType == RUBY_T_IMEMO:
# I'm not sure how to get IMEMO_MASK out of lldb. It's not in globals()
imemo_type = (flags >> RUBY_FL_USHIFT) & 0x0F # IMEMO_MASK
print("T_IMEMO: ", file=result)
append_command_output(debugger, "p (enum imemo_type) %d" % imemo_type, result)
append_command_output(debugger, "p *(struct MEMO *) %0#x" % val.GetValueAsUnsigned(), result)
else:
print("Not-handled type %0#x" % flType, file=result)
print(val, file=result)