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.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/scripts/gdb/linux/utils.py b/scripts/gdb/linux/utils.py
index 0893b326a28b..50805874cfc3 100644
--- a/scripts/gdb/linux/utils.py
+++ b/scripts/gdb/linux/utils.py
@@ -87,11 +87,24 @@ def get_target_endianness():
87 return target_endianness 87 return target_endianness
88 88
89 89
90def read_memoryview(inf, start, length):
91 return memoryview(inf.read_memory(start, length))
92
93
90def read_u16(buffer): 94def read_u16(buffer):
95 value = [0, 0]
96
97 if type(buffer[0]) is str:
98 value[0] = ord(buffer[0])
99 value[1] = ord(buffer[1])
100 else:
101 value[0] = buffer[0]
102 value[1] = buffer[1]
103
91 if get_target_endianness() == LITTLE_ENDIAN: 104 if get_target_endianness() == LITTLE_ENDIAN:
92 return ord(buffer[0]) + (ord(buffer[1]) << 8) 105 return value[0] + (value[1] << 8)
93 else: 106 else:
94 return ord(buffer[1]) + (ord(buffer[0]) << 8) 107 return value[1] + (value[0] << 8)
95 108
96 109
97def read_u32(buffer): 110def read_u32(buffer):
@@ -154,3 +167,18 @@ def get_gdbserver_type():
154 if gdbserver_type is not None and hasattr(gdb, 'events'): 167 if gdbserver_type is not None and hasattr(gdb, 'events'):
155 gdb.events.exited.connect(exit_handler) 168 gdb.events.exited.connect(exit_handler)
156 return gdbserver_type 169 return gdbserver_type
170
171
172def gdb_eval_or_none(expresssion):
173 try:
174 return gdb.parse_and_eval(expresssion)
175 except:
176 return None
177
178
179def dentry_name(d):
180 parent = d['d_parent']
181 if parent == d or parent == 0:
182 return ""
183 p = dentry_name(d['d_parent']) + "/"
184 return p + d['d_iname'].string()