DebugRegisters represents all registers of the target.
| 188 | |
| 189 | |
| 190 | class DebugRegisters: |
| 191 | """ |
| 192 | DebugRegisters represents all registers of the target. |
| 193 | """ |
| 194 | def __init__(self, handle): |
| 195 | self.handle = handle |
| 196 | self.regs = {} |
| 197 | count = ctypes.c_ulonglong() |
| 198 | registers = dbgcore.BNDebuggerGetRegisters(handle, count) |
| 199 | for i in range(0, count.value): |
| 200 | bp = DebugRegister(registers[i].m_name, registers[i].m_value, |
| 201 | registers[i].m_width, registers[i].m_registerIndex, registers[i].m_hint) |
| 202 | self.regs[registers[i].m_name] = bp |
| 203 | dbgcore.BNDebuggerFreeRegisters(registers, count.value) |
| 204 | |
| 205 | def __repr__(self) -> str: |
| 206 | return self.regs.__repr__() |
| 207 | |
| 208 | def __getitem__(self, name): |
| 209 | if name not in self.regs: |
| 210 | return None |
| 211 | |
| 212 | return self.regs[name] |
| 213 | |
| 214 | def __setitem__(self, name, val): |
| 215 | dbgcore.BNDebuggerSetRegisterValue(self.handle, name, val) |
| 216 | |
| 217 | def __len__(self): |
| 218 | return len(self.regs) |
| 219 | |
| 220 | |
| 221 | class DebugBreakpoint: |