0

Update third_party/blink/tools/lldb/lldb_blink.py to work with blink types.

Also update the indentation from 2 to 4 for linter issues.

Bug: 1004272
Change-Id: I0235848c18506c2e39fd9d98b22eba4e54c1e8af
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1810444
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#698020}
This commit is contained in:
Jiaxun Wei
2019-09-19 14:54:49 +00:00
committed by Commit Bot
parent beea2b2486
commit 39d506e84c
2 changed files with 20 additions and 11 deletions
AUTHORS
third_party/blink/tools/lldb

@ -1094,3 +1094,4 @@ Vewd Software AS <*@vewd.com>
Vivaldi Technologies AS <*@vivaldi.com>
Yandex LLC <*@yandex-team.ru>
Make Positive Provar Limited <*@provartesting.com>
Jiaxun Wei <leuisken@gmail.com>

@ -142,22 +142,30 @@ class WTFStringImplProvider:
def get_length(self):
return self.valobj.GetChildMemberWithName('length_').GetValueAsUnsigned(0)
def get_data8(self):
# FIXME: This should be the equivalent of reinterpret_cast<LChar*>(self.valobj + 1)
return self.valobj.GetChildAtIndex(2).GetChildMemberWithName('m_data8')
def get_data16(self):
# FIXME: This should be the equivalent of reinterpret_cast<UChar*>(self.valobj + 1)
return self.valobj.GetChildAtIndex(2).GetChildMemberWithName('m_data16')
def to_string(self):
val_type = self.valobj.GetType()
process = self.valobj.GetProcess()
endianness = process.GetByteOrder()
pointer_size = process.GetAddressByteSize()
offset = val_type.GetPointeeType().GetByteSize()
char_start = self.valobj.GetValueAsUnsigned(0) + offset
pointer = lldb.SBData.CreateDataFromUInt64Array(endianness, pointer_size, [char_start])
error = lldb.SBError()
if self.is_8bit():
return lstring_to_string(self.get_data8(), error, self.get_length())
return ustring_to_string(self.get_data16(), error, self.get_length())
return lstring_to_string(
self.valobj.CreateValueFromData(
'str_impl', pointer,
val_type.GetBasicType(lldb.eBasicTypeChar).GetPointerType()),
error, self.get_length())
return ustring_to_string(
self.valobj.CreateValueFromData(
'str_impl', pointer,
val_type.GetBasicType(lldb.eBasicTypeUnsignedChar).GetPointerType()),
error, self.get_length())
def is_8bit(self):
return self.valobj.GetChildMemberWithName('is_8bit_')
return self.valobj.GetChildMemberWithName('is_8bit_').GetValueAsUnsigned(0)
class WTFStringProvider: