def disasm(vm): addr = vm.cpu.code_location() try: print disassemble(vm, disasm_wrapper, addr) except GDBError as e: if e.value == GDBError.mem: # consider page size to be 4K pg_sz = 1<<12 nxt = (addr + pg_sz) & ~(pg_sz-1) sz = nxt - addr print disassemble(vm, disasm_wrapper, vm.cpu.code_location(), sz) except: pass
def disasm(vm): addr = vm.cpu.code_location() try: print disassemble(vm, disasm_wrapper, addr) except GDBError as e: if e.value == GDBError.mem: # consider page size to be 4K pg_sz = 1 << 12 nxt = (addr + pg_sz) & ~(pg_sz - 1) sz = nxt - addr print disassemble(vm, disasm_wrapper, vm.cpu.code_location(), sz) except: pass
def sstep_disasm(vm): insns = disassemble(vm, disasm_wrapper, vm.cpu.code_location()) print insns.split('\n')[0] return True