summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-10-31 22:40:34 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-10-31 22:40:34 +0900
commitb06b69e6dc004fd275984bb42f05caa86e487566 (patch)
tree1e8e4a5adb2ac5034e3670afe6dadbd76de21fd1 /misc
parent3801503fe3d5c1440bc4e47a60e3e3bf5a22255d (diff)
LLDB: Dump table structs in Hash [ci skip]
Diffstat (limited to 'misc')
-rw-r--r--misc/lldb_rb/utils.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/misc/lldb_rb/utils.py b/misc/lldb_rb/utils.py
index 7cd73569a6..26517b7fee 100644
--- a/misc/lldb_rb/utils.py
+++ b/misc/lldb_rb/utils.py
@@ -171,7 +171,12 @@ class RbInspector(LLDBInterface):
elif rval.is_type("RUBY_T_HASH"):
self.result.write("T_HASH: %s" % flaginfo)
- self._append_expression("*(struct RHash *) %0#x" % val.GetValueAsUnsigned())
+ ptr = val.GetValueAsUnsigned()
+ self._append_expression("*(struct RHash *) %0#x" % ptr)
+ if rval.flags & self.ruby_globals["RUBY_FL_USER3"]:
+ self._append_expression("*(struct st_table *) (%0#x + sizeof(struct RHash))" % ptr)
+ else:
+ self._append_expression("*(struct ar_table *) (%0#x + sizeof(struct RHash))" % ptr)
elif rval.is_type("RUBY_T_BIGNUM"):
sign = '-'