summaryrefslogtreecommitdiff
path: root/misc/lldb_cruby.py
diff options
context:
space:
mode:
authorÉtienne Barrié <[email protected]>2025-04-10 15:26:06 +0200
committerJean Boussier <[email protected]>2025-04-15 11:50:48 +0900
commite1f544c1cf34787f139a973b934c9f535b201ea3 (patch)
treeaa19a9af18e8350bad61e9d4d7f06c8dd83063b4 /misc/lldb_cruby.py
parent6e184ebb5aa0461936a6db408a7fa48541a0e80d (diff)
Always look for the top-level RBasic in LLDB scripts
`rp` and other commands were broken for me because they always showed the object as a T_NONE. The reason was that instead of returning the type `struct RBasic`, FindFirstType("struct RBasic") was returning `yjit::cruby::autogened::RBasic`. Explicitly asking for the top-level RBasic by prefixing it with `::` is enough to fix those commands.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/13096
Diffstat (limited to 'misc/lldb_cruby.py')
-rwxr-xr-xmisc/lldb_cruby.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py
index c539b17564..f263ca5732 100755
--- a/misc/lldb_cruby.py
+++ b/misc/lldb_cruby.py
@@ -68,7 +68,7 @@ class BackTrace:
return self.VM_FRAME_MAGIC_NAME.get(frame_type, "(none)")
def rb_iseq_path_str(self, iseq):
- tRBasic = self.target.FindFirstType("struct RBasic").GetPointerType()
+ tRBasic = self.target.FindFirstType("::RBasic").GetPointerType()
pathobj = iseq.GetValueForExpressionPath("->body->location.pathobj")
pathobj = pathobj.Cast(tRBasic)
@@ -270,7 +270,7 @@ def lldb_inspect(debugger, target, result, val):
elif num & RUBY_IMMEDIATE_MASK:
print('immediate(%x)' % num, file=result)
else:
- tRBasic = target.FindFirstType("struct RBasic").GetPointerType()
+ tRBasic = target.FindFirstType("::RBasic").GetPointerType()
val = val.Cast(tRBasic)
flags = val.GetValueForExpressionPath("->flags").GetValueAsUnsigned()
@@ -550,7 +550,7 @@ class HeapPageIter:
self.num_slots = page.GetChildMemberWithName('total_slots').unsigned
self.slot_size = page.GetChildMemberWithName('heap').GetChildMemberWithName('slot_size').unsigned
self.counter = 0
- self.tRBasic = target.FindFirstType("struct RBasic")
+ self.tRBasic = target.FindFirstType("::RBasic")
def is_valid(self):
heap_page_header_size = self.target.FindFirstType("struct heap_page_header").GetByteSize()