def __iter__(self):
return self
- def next(self):
+ def __next__(self):
while self.bits == 0:
self.entry += 1
if self.entry == self.num_entries:
return cpu
+ def next(self):
+ return self.__next__()
+
class PerCpu(gdb.Function):
"""Return per-cpu variable.
continue
text_len = utils.read_u16(log_buf[pos + 10:pos + 12])
+ text = log_buf[pos + 16:pos + 16 + text_len]
time_stamp = utils.read_u64(log_buf[pos:pos + 8])
- for line in log_buf[pos + 16:pos + 16 + text_len].splitlines():
+ for line in memoryview(text).tobytes().splitlines():
gdb.write("[{time:12.6f}] {line}\n".format(
time=time_stamp / 1000000000.0,
line=line))
def __iter__(self):
return self
- def next(self):
+ def __next__(self):
entry = self.curr_entry
if entry != self.end_of_list:
self.curr_entry = entry['next']
else:
raise StopIteration
+ def next(self):
+ return self.__next__()
+
def find_module_by_name(name):
for module in ModuleList():
gdb.write("{address} {name:<19} {size:>8} {ref}".format(
address=str(module['module_core']).split()[0],
name=module['name'].string(),
- size=module['core_size'],
- ref=ref))
+ size=str(module['core_size']),
+ ref=str(ref)))
source_list = module['source_list']
t = self._module_use_type.get_type().pointer()
def _get_module_file(self, module_name):
module_pattern = ".*/{0}\.ko$".format(
- string.replace(module_name, "_", r"[_\-]"))
+ module_name.replace("_", r"[_\-]"))
for name in self.module_files:
if re.match(module_pattern, name) and os.path.exists(name):
return name
attrs = sect_attrs['attrs']
section_name_to_address = {
attrs[n]['name'].string() : attrs[n]['address']
- for n in range(sect_attrs['nsections'])}
+ for n in range(int(sect_attrs['nsections']))}
args = []
for section_name in [".data", ".data..read_mostly", ".rodata", ".bss"]:
address = section_name_to_address.get(section_name)
def __iter__(self):
return self
- def next(self):
+ def __next__(self):
t = self.curr_task
if not t or t == self.curr_group:
self.curr_group = \
self.task_ptr_type, "thread_group")
return t
+ def next(self):
+ return self.__next__()
def get_task_by_pid(pid):
for task in TaskList():
elif "big endian" in endian:
target_endianness = BIG_ENDIAN
else:
- raise gdb.GdgError("unknown endianness '{0}'".format(endian))
+ raise gdb.GdgError("unknown endianness '{0}'".format(str(endian)))
return target_endianness