ruby-changes:58165
From: Nobuyoshi <ko1@a...>
Date: Wed, 9 Oct 2019 09:08:51 +0900 (JST)
Subject: [ruby-changes:58165] e078352a78 (master): lldb_cruby.py: fixed inspecting string [ci skip]
https://git.ruby-lang.org/ruby.git/commit/?id=e078352a78 From e078352a787ce3d52b5147a5fdf69b89a9d60cff Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Wed, 9 Oct 2019 09:04:37 +0900 Subject: lldb_cruby.py: fixed inspecting string [ci skip] Show the size of String. To see the whole contents even after NUL char: ``` (lldb) rp str (const char [5]) $1 = "x" (lldb) memory read -s1 --format x --count `sizeof($1)` -- &$1 0x1010457a8: 0x78 0x00 0x61 0x61 0x61 ``` diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py index 45ba6e3..619f97d 100755 --- a/misc/lldb_cruby.py +++ b/misc/lldb_cruby.py @@ -130,11 +130,8 @@ def lldb_inspect(debugger, target, result, val): https://github.com/ruby/ruby/blob/trunk/misc/lldb_cruby.py#L130 print('T_%s: %s' % ('CLASS' if flType == RUBY_T_CLASS else 'MODULE' if flType == RUBY_T_MODULE else 'ICLASS', val.Dereference()), file=result) elif flType == RUBY_T_STRING: tRString = target.FindFirstType("struct RString").GetPointerType() - val = val.Cast(tRString) - if flags & RSTRING_NOEMBED: - print(val.GetValueForExpressionPath("->as.heap"), file=result) - else: - print(val.GetValueForExpressionPath("->as.ary"), file=result) + ptr, len = string2cstr(val.Cast(tRString)) + append_command_output(debugger, "print *(const char (*)[%d])%0#x" % (len, ptr), result) elif flType == RUBY_T_SYMBOL: tRSymbol = target.FindFirstType("struct RSymbol").GetPointerType() print(val.Cast(tRSymbol).Dereference(), file=result) -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/