uni: trap prints r8-r12

This commit is contained in:
SashegDev
2026-09-14 10:56:27 +00:00
parent 8aef555346
commit 170b6bcb7e
+9 -2
View File
@@ -13,11 +13,16 @@ from unicorn import (Uc, UC_ARCH_ARM, UC_MODE_THUMB, UC_HOOK_MEM_UNMAPPED,
UC_HOOK_MEM_WRITE, UC_HOOK_CODE) UC_HOOK_MEM_WRITE, UC_HOOK_CODE)
from unicorn.arm_const import (UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, from unicorn.arm_const import (UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2,
UC_ARM_REG_R3, UC_ARM_REG_R4, UC_ARM_REG_R5, UC_ARM_REG_R3, UC_ARM_REG_R4, UC_ARM_REG_R5,
UC_ARM_REG_R6, UC_ARM_REG_R7, UC_ARM_REG_SP, UC_ARM_REG_R6, UC_ARM_REG_R7, UC_ARM_REG_R8,
UC_ARM_REG_R9, UC_ARM_REG_R10,
UC_ARM_REG_R11, UC_ARM_REG_R12,
UC_ARM_REG_SP,
UC_ARM_REG_LR, UC_ARM_REG_PC, UC_ARM_REG_LR, UC_ARM_REG_PC,
UC_ARM_REG_CPSR) UC_ARM_REG_CPSR)
_REGS = (UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, UC_ARM_REG_R3, _REGS = (UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, UC_ARM_REG_R3,
UC_ARM_REG_R4, UC_ARM_REG_R5, UC_ARM_REG_R6, UC_ARM_REG_R7) UC_ARM_REG_R4, UC_ARM_REG_R5, UC_ARM_REG_R6, UC_ARM_REG_R7)
_REGS_HI = (UC_ARM_REG_R8, UC_ARM_REG_R9, UC_ARM_REG_R10, UC_ARM_REG_R11,
UC_ARM_REG_R12)
RAMS = [ RAMS = [
(0x00000000, 0x00001000), # zero page (QEMU-compat: [0] writes succeed) (0x00000000, 0x00001000), # zero page (QEMU-compat: [0] writes succeed)
@@ -196,9 +201,11 @@ def main():
if _traps and addr in _traps: if _traps and addr in _traps:
try: try:
vals = [mu.reg_read(_REGS[i]) for i in range(8)] vals = [mu.reg_read(_REGS[i]) for i in range(8)]
hiv = [mu.reg_read(_REGS_HI[i]) for i in range(5)]
except Exception: except Exception:
vals = [] vals = []
print(f"TRAP {addr:#x} insn#{count[0]} r0-r7={[hex(x) for x in vals]} sp={mu.reg_read(UC_ARM_REG_SP):#x} lr={mu.reg_read(_LR):#x}") hiv = []
print(f"TRAP {addr:#x} insn#{count[0]} r0-r7={[hex(x) for x in vals]} r8-r12={[hex(x) for x in hiv]} sp={mu.reg_read(UC_ARM_REG_SP):#x} lr={mu.reg_read(_LR):#x}")
try: try:
print(f" [73A100]={bytes(mu.mem_read(0x073A100, 4)).hex()}") print(f" [73A100]={bytes(mu.mem_read(0x073A100, 4)).hex()}")
except Exception as e: except Exception as e: