diff options
Diffstat (limited to 'scripts/gdb/linux/utils.py')
| -rw-r--r-- | scripts/gdb/linux/utils.py | 25 | 
1 files changed, 13 insertions, 12 deletions
| diff --git a/scripts/gdb/linux/utils.py b/scripts/gdb/linux/utils.py index bc67126118c4..ea94221dbd39 100644 --- a/scripts/gdb/linux/utils.py +++ b/scripts/gdb/linux/utils.py @@ -92,15 +92,16 @@ def read_memoryview(inf, start, length):      return memoryview(inf.read_memory(start, length)) -def read_u16(buffer): +def read_u16(buffer, offset): +    buffer_val = buffer[offset:offset + 2]      value = [0, 0] -    if type(buffer[0]) is str: -        value[0] = ord(buffer[0]) -        value[1] = ord(buffer[1]) +    if type(buffer_val[0]) is str: +        value[0] = ord(buffer_val[0]) +        value[1] = ord(buffer_val[1])      else: -        value[0] = buffer[0] -        value[1] = buffer[1] +        value[0] = buffer_val[0] +        value[1] = buffer_val[1]      if get_target_endianness() == LITTLE_ENDIAN:          return value[0] + (value[1] << 8) @@ -108,18 +109,18 @@ def read_u16(buffer):          return value[1] + (value[0] << 8) -def read_u32(buffer): +def read_u32(buffer, offset):      if get_target_endianness() == LITTLE_ENDIAN: -        return read_u16(buffer[0:2]) + (read_u16(buffer[2:4]) << 16) +        return read_u16(buffer, offset) + (read_u16(buffer, offset + 2) << 16)      else: -        return read_u16(buffer[2:4]) + (read_u16(buffer[0:2]) << 16) +        return read_u16(buffer, offset + 2) + (read_u16(buffer, offset) << 16) -def read_u64(buffer): +def read_u64(buffer, offset):      if get_target_endianness() == LITTLE_ENDIAN: -        return read_u32(buffer[0:4]) + (read_u32(buffer[4:8]) << 32) +        return read_u32(buffer, offset) + (read_u32(buffer, offset + 4) << 32)      else: -        return read_u32(buffer[4:8]) + (read_u32(buffer[0:4]) << 32) +        return read_u32(buffer, offset + 4) + (read_u32(buffer, offset) << 32)  target_arch = None | 
