From 98131f148f057b1364ae080f99b1efb2dc72002a Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 9 Oct 2019 09:01:11 +0900 Subject: lldb_cruby.py: fixed embedded string ptr [ci skip] Use GetLocation to get the address of embedded array. --- misc/lldb_cruby.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'misc/lldb_cruby.py') diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py index 3b46dcb4f0..45ba6e3828 100755 --- a/misc/lldb_cruby.py +++ b/misc/lldb_cruby.py @@ -33,6 +33,8 @@ def lldb_init(debugger): def string2cstr(rstring): """Returns the pointer to the C-string in the given String object""" + if rstring.TypeIsPointerType(): + rstring = rstring.Dereference() flags = rstring.GetValueForExpressionPath(".basic->flags").unsigned if flags & RUBY_T_MASK != RUBY_T_STRING: raise TypeError("not a string") @@ -40,7 +42,7 @@ def string2cstr(rstring): cptr = int(rstring.GetValueForExpressionPath(".as.heap.ptr").value, 0) clen = int(rstring.GetValueForExpressionPath(".as.heap.len").value, 0) else: - cptr = int(rstring.GetValueForExpressionPath(".as.ary").value, 0) + cptr = int(rstring.GetValueForExpressionPath(".as.ary").location, 0) clen = (flags & RSTRING_EMBED_LEN_MASK) >> RSTRING_EMBED_LEN_SHIFT return cptr, clen -- cgit v1.2.3