def check_building_disassemble_result():
"""Check that we can create DisassembleResult objects correctly."""
-
- result = gdb.disassembler.DisassemblerResult()
-
+ gdb.disassembler.DisassemblerResult()
print("PASS")
"""Raise a GdbError after calling the builtin disassembler."""
def disassemble(self, info):
- result = builtin_disassemble_wrapper(info)
+ builtin_disassemble_wrapper(info)
raise gdb.GdbError("GdbError after builtin disassembler")
"""Raise a RuntimeError after calling the builtin disassembler."""
def disassemble(self, info):
- result = builtin_disassemble_wrapper(info)
+ builtin_disassemble_wrapper(info)
raise RuntimeError("RuntimeError after builtin disassembler")
before we return a result."""
def disassemble(self, info):
- result = builtin_disassemble_wrapper(info)
+ builtin_disassemble_wrapper(info)
# The following read will throw an error.
info.read_memory(1, -info.address - 1)
return DisassemblerResult(1, "BAD")
def disassemble(self, info):
try:
info.read_memory(1, -info.address - 1)
- except gdb.MemoryError as e:
+ except gdb.MemoryError:
raise gdb.MemoryError("cannot read code at address -1")
return DisassemblerResult(1, "BAD")
assert isinstance(info, gdb.disassembler.DisassembleInfo)
assert not info.is_valid()
try:
- val = info.address
+ info.address
raise gdb.GdbError("DisassembleInfo.address is still valid")
except RuntimeError as e:
assert str(e) == "DisassembleInfo is no longer valid."
)
try:
- val = info.architecture
+ info.architecture
raise gdb.GdbError("DisassembleInfo.architecture is still valid")
except RuntimeError as e:
assert str(e) == "DisassembleInfo is no longer valid."
)
try:
- val = info.read_memory(1, 0)
+ info.read_memory(1, 0)
raise gdb.GdbError("DisassembleInfo.read is still valid")
except RuntimeError as e:
assert str(e) == "DisassembleInfo is no longer valid."
"""Try to create a DisassemblerTextPart with no arguments."""
def disassemble(self, info):
- part = info.text_part()
- return None
+ info.text_part()
class ErrorCreatingAddressPart_NoArgs(TestDisassembler):
"""Try to create a DisassemblerAddressPart with no arguments."""
def disassemble(self, info):
- part = info.address_part()
- return None
+ info.address_part()
class ErrorCreatingTextPart_NoString(TestDisassembler):
"""Try to create a DisassemblerTextPart with no string argument."""
def disassemble(self, info):
- part = info.text_part(gdb.disassembler.STYLE_TEXT)
- return None
+ info.text_part(gdb.disassembler.STYLE_TEXT)
class ErrorCreatingTextPart_NoStyle(TestDisassembler):
"""Try to create a DisassemblerTextPart with no string argument."""
def disassemble(self, info):
- part = info.text_part(string="abc")
- return None
+ info.text_part(string="abc")
class ErrorCreatingTextPart_StringAndParts(TestDisassembler):
idx > 0
and idx != nop_idx
and not is_nop(self._pass_1_insn[idx])
- and self._pass_1_length[idx] > self._pass_1_length[nop_idx]
- and self._pass_1_length[idx] % self._pass_1_length[nop_idx] == 0
+ and self._pass_1_length[idx] > nop_length
+ and self._pass_1_length[idx] % nop_length == 0
):
replace_idx = idx
break
idx > 0
and idx != nop_idx
and not is_nop(self._pass_1_insn[idx])
- and self._pass_1_length[idx] == self._pass_1_length[nop_idx]
+ and self._pass_1_length[idx] == nop_length
):
replace_idx = idx
break
# is a copy of _pass_1_insn, but replace the instruction we
# identified above with a series of 'nop' instructions.
self._check = list(self._pass_1_insn)
- nop_count = int(self._pass_1_length[replace_idx] / self._pass_1_length[nop_idx])
+ nop_count = int(self._pass_1_length[replace_idx] / nop_length)
nop_insn = self._pass_1_insn[nop_idx]
nops = [nop_insn] * nop_count
self._check[replace_idx : (replace_idx + 1)] = nops