aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/gdb/linux/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gdb/linux/utils.py')
-rw-r--r--scripts/gdb/linux/utils.py25
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):
92 return memoryview(inf.read_memory(start, length)) 92 return memoryview(inf.read_memory(start, length))
93 93
94 94
95def read_u16(buffer): 95def read_u16(buffer, offset):
96 buffer_val = buffer[offset:offset + 2]
96 value = [0, 0] 97 value = [0, 0]
97 98
98 if type(buffer[0]) is str: 99 if type(buffer_val[0]) is str:
99 value[0] = ord(buffer[0]) 100 value[0] = ord(buffer_val[0])
100 value[1] = ord(buffer[1]) 101 value[1] = ord(buffer_val[1])
101 else: 102 else:
102 value[0] = buffer[0] 103 value[0] = buffer_val[0]
103 value[1] = buffer[1] 104 value[1] = buffer_val[1]
104 105
105 if get_target_endianness() == LITTLE_ENDIAN: 106 if get_target_endianness() == LITTLE_ENDIAN:
106 return value[0] + (value[1] << 8) 107 return value[0] + (value[1] << 8)
@@ -108,18 +109,18 @@ def read_u16(buffer):
108 return value[1] + (value[0] << 8) 109 return value[1] + (value[0] << 8)
109 110
110 111
111def read_u32(buffer): 112def read_u32(buffer, offset):
112 if get_target_endianness() == LITTLE_ENDIAN: 113 if get_target_endianness() == LITTLE_ENDIAN:
113 return read_u16(buffer[0:2]) + (read_u16(buffer[2:4]) << 16) 114 return read_u16(buffer, offset) + (read_u16(buffer, offset + 2) << 16)
114 else: 115 else:
115 return read_u16(buffer[2:4]) + (read_u16(buffer[0:2]) << 16) 116 return read_u16(buffer, offset + 2) + (read_u16(buffer, offset) << 16)
116 117
117 118
118def read_u64(buffer): 119def read_u64(buffer, offset):
119 if get_target_endianness() == LITTLE_ENDIAN: 120 if get_target_endianness() == LITTLE_ENDIAN:
120 return read_u32(buffer[0:4]) + (read_u32(buffer[4:8]) << 32) 121 return read_u32(buffer, offset) + (read_u32(buffer, offset + 4) << 32)
121 else: 122 else:
122 return read_u32(buffer[4:8]) + (read_u32(buffer[0:4]) << 32) 123 return read_u32(buffer, offset + 4) + (read_u32(buffer, offset) << 32)
123 124
124 125
125target_arch = None 126target_arch = None