aboutsummaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-06-23 15:52:37 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-06-23 15:56:59 +0900
commit6aa3aaac054619942762447bd60a5e26966305c2 (patch)
tree6100eead3a536b041c59c0272119acadfe2adc7e /misc
parent078e94106d7ffb171fcc8067679268b62369e506 (diff)
downloadruby-6aa3aaac054619942762447bd60a5e26966305c2.tar.gz
lldb_cruby.py: show the sign of Bignum [ci skip]
Diffstat (limited to 'misc')
-rwxr-xr-xmisc/lldb_cruby.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py
index fff8cc776a..73916713e9 100755
--- a/misc/lldb_cruby.py
+++ b/misc/lldb_cruby.py
@@ -176,13 +176,14 @@ def lldb_inspect(debugger, target, result, val):
elif flType == RUBY_T_BIGNUM:
tRBignum = target.FindFirstType("struct RBignum").GetPointerType()
val = val.Cast(tRBignum)
+ sign = '+' if (flags & RUBY_FL_USER1) != 0 else '-'
if flags & RUBY_FL_USER2:
len = ((flags & (RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5)) >> (RUBY_FL_USHIFT+3))
- print("T_BIGNUM: len=%d (embed)" % len, file=result)
+ print("T_BIGNUM: sign=%s len=%d (embed)" % (sign, len), file=result)
append_command_output(debugger, "print ((struct RBignum *) %0#x)->as.ary" % val.GetValueAsUnsigned(), result)
else:
len = val.GetValueForExpressionPath("->as.heap.len").GetValueAsSigned()
- print("T_BIGNUM: len=%d" % len, file=result)
+ print("T_BIGNUM: sign=%s len=%d" % (sign, len), file=result)
print(val.Dereference(), file=result)
append_command_output(debugger, "expression -Z %x -fx -- (const BDIGIT*)((struct RBignum*)%d)->as.heap.digits" % (len, val.GetValueAsUnsigned()), result)
# append_command_output(debugger, "x ((struct RBignum *) %0#x)->as.heap.digits / %d" % (val.GetValueAsUnsigned(), len), result)