python: handle UC_ERR_TIMEOUT, so sample_x86.py behaves like sample_x86.c

Backports commit 810bd34eef41078ca840be2e2ad82d762cb26fa5 from unicorn
pull/21/head
Nguyen Anh Quynh 2020-01-14 09:53:04 -05:00 committed by Lioncash
parent 784d580f01
commit 80a286cf8a
1 changed files with 9 additions and 2 deletions

View File

@ -383,9 +383,16 @@ def test_i386_loop():
print(">>> ECX = 0x%x" %r_ecx)
print(">>> EDX = 0x%x" %r_edx)
except UcError as e:
print("ERROR: %s" % e)
# timeout is acceptable in this case
if e.errno == UC_ERR_TIMEOUT:
print(">>> Emulation done. Below is the CPU context")
r_ecx = mu.reg_read(UC_X86_REG_ECX)
r_edx = mu.reg_read(UC_X86_REG_EDX)
print(">>> ECX = 0x%x" %r_ecx)
print(">>> EDX = 0x%x" %r_edx)
else:
print("ERROR: %s" % e)
# Test X86 32 bit with IN/OUT instruction
def test_i386_inout():