diff options
Diffstat (limited to 'misc')
-rwxr-xr-x | misc/lldb_cruby.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py index d411b32ecf..c9bb5cac7b 100755 --- a/misc/lldb_cruby.py +++ b/misc/lldb_cruby.py @@ -82,6 +82,9 @@ def lldb_rp(debugger, command, result, internal_dict): if error.Fail(): print >> result, error return + lldb_inspect(debugger, target, result, val) + +def lldb_inspect(debugger, target, result, val): num = val.GetValueAsSigned() if num == RUBY_Qfalse: print >> result, 'false' @@ -174,6 +177,14 @@ def lldb_rp(debugger, command, result, internal_dict): tRFloat = target.FindFirstType("struct RFloat").GetPointerType() val = val.Cast(tRFloat) append_command_output(debugger, "p *(double *)%0#x" % val.GetValueForExpressionPath("->float_value").GetAddress(), result) + elif flType == RUBY_T_RATIONAL: + tRRational = target.FindFirstType("struct RRational").GetPointerType() + val = val.Cast(tRRational) + lldb_inspect(debugger, target, result, val.GetValueForExpressionPath("->num")) + output = result.GetOutput() + result.Clear() + result.write("(Rational) " + output.rstrip() + " / ") + lldb_inspect(debugger, target, result, val.GetValueForExpressionPath("->den")) elif flType == RUBY_T_DATA: tRTypedData = target.FindFirstType("struct RTypedData").GetPointerType() val = val.Cast(tRTypedData) |