diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-09-30 02:07:12 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-09-30 02:09:29 +0900 |
commit | ce717be1881e5751ec07b6f65901a750e7f3069a (patch) | |
tree | c37c1f8aa37cfaa7ac96e4d3cf17b82df2e820e6 | |
parent | 9fa7ec9332a7d39f1c7d8056bbcf62cb6f9340df (diff) |
Fix RBignum print [ci skip]
-rw-r--r-- | misc/lldb_rb/rb_heap_structs.py | 5 | ||||
-rw-r--r-- | misc/lldb_rb/utils.py | 6 |
2 files changed, 5 insertions, 6 deletions
diff --git a/misc/lldb_rb/rb_heap_structs.py b/misc/lldb_rb/rb_heap_structs.py index b86ba2b2d6..86b38dbbbd 100644 --- a/misc/lldb_rb/rb_heap_structs.py +++ b/misc/lldb_rb/rb_heap_structs.py @@ -132,11 +132,12 @@ class RbObject(LLDBInterface): return len def bignum_len(self): - if self.flags & flUser2: + if self.flags & self.flUser2: len = ((self.flags & (self.flUser3 | self.flUser4 | self.flUser5) ) >> (self.flUshift + 3)) else: - len = self.val.GetValueForExpressionPath("->as.heap.len") + len = (self.as_type("bignum").GetValueForExpressionPath("->as.heap.len"). + GetValueAsUnsigned()) return len diff --git a/misc/lldb_rb/utils.py b/misc/lldb_rb/utils.py index 6c50bd3cfe..2077e21b8c 100644 --- a/misc/lldb_rb/utils.py +++ b/misc/lldb_rb/utils.py @@ -175,8 +175,6 @@ class RbInspector(LLDBInterface): self._append_command_output("p *(struct RHash *) %0#x" % val.GetValueAsUnsigned()) elif rval.is_type("RUBY_T_BIGNUM"): - tRBignum = self.target.FindFirstType("struct RBignum").GetPointerType() - sign = '-' if (rval.flags & self.ruby_globals["RUBY_FL_USER1"]) != 0: sign = '+' @@ -188,9 +186,9 @@ class RbInspector(LLDBInterface): % val.GetValueAsUnsigned()) else: print("T_BIGNUM: sign=%s len=%d" % (sign, len), file=self.result) - print(val.Dereference(), file=self.result) + print(rval.as_type("bignum"), file=self.result) self._append_command_output( - "expression -Z %x -fx -- (const BDIGIT*)((struct RBignum*)%d)->as.heap.digits" % + "expression -Z %d -fx -- ((struct RBignum*)%d)->as.heap.digits" % (len, val.GetValueAsUnsigned())) elif rval.is_type("RUBY_T_FLOAT"): |