diff options
author | Nobuyoshi Nakada <[email protected]> | 2023-10-31 22:40:34 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2023-10-31 22:40:34 +0900 |
commit | b06b69e6dc004fd275984bb42f05caa86e487566 (patch) | |
tree | 1e8e4a5adb2ac5034e3670afe6dadbd76de21fd1 | |
parent | 3801503fe3d5c1440bc4e47a60e3e3bf5a22255d (diff) |
LLDB: Dump table structs in Hash [ci skip]
-rw-r--r-- | misc/lldb_rb/utils.py | 7 |
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 = '-' |