def select_modifiable_register(self, reg_infos):
"""Find a register that can be read/written freely."""
PREFERRED_REGISTER_NAMES = sets.Set(["rax",])
-
+
# First check for the first register from the preferred register name set.
alternative_register_index = None
-
+
self.assertIsNotNone(reg_infos)
for reg_info in reg_infos:
if ("name" in reg_info) and (reg_info["name"] in PREFERRED_REGISTER_NAMES):
self.assertIsNotNone(reg_index)
reg_byte_size = int(reg_infos[reg_index]["bitsize"]) / 8
self.assertTrue(reg_byte_size > 0)
-
+
# Run the process a bit so threads can start up, and collect register info.
context = self.run_process_then_stop(run_seconds=1)
self.assertIsNotNone(context)
retval = value.encode("hex")
if byte_size:
# Add zero-fill to the left/front (MSB side) of the value.
- retval = ("00" * (byte_size - len(retval)/2)) + retval
+ retval = ("00" * (byte_size - len(retval)/2)) + retval
return retval
-
+
else:
# pdp is valid but need to add parse code once needed.
raise Exception("unsupported endian:{}".format(endian))