Skip to content

Commit b1ad033

Browse files
committed
Have qdb use xPSR for Cortex M instead of CPSR
1 parent d614855 commit b1ad033

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

qiling/debugger/qdb/arch/arch_arm.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
# Cross Platform and Multi Architecture Advanced Binary Emulation Framework
44
#
55

6-
from typing import Dict, Optional
6+
from typing import ClassVar, Dict, Optional
77

88
from .arch import Arch
99

1010

1111
class ArchARM(Arch):
12+
_flags_reg: ClassVar[str] = 'cpsr'
13+
1214
def __init__(self) -> None:
1315
regs = (
1416
'r0', 'r1', 'r2', 'r3',
@@ -134,6 +136,8 @@ def read_insn(self, address: int) -> Optional[bytearray]:
134136

135137

136138
class ArchCORTEX_M(ArchARM):
139+
_flags_reg: ClassVar[str] = 'xpsr'
140+
137141
def __init__(self):
138142
super().__init__()
139143

qiling/debugger/qdb/branch_predictor/branch_predictor_arm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def get_cpsr(self) -> Tuple[bool, bool, bool, bool]:
3131
"""Get flags map of CPSR.
3232
"""
3333

34-
cpsr = self.read_reg('cpsr')
34+
cpsr = self.read_reg(self._flags_reg)
3535

3636
return (
3737
(cpsr & (0b1 << 28)) != 0, # V, overflow flag

qiling/debugger/qdb/render/render_arm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class ContextRenderARM(ContextRender, ArchARM):
1515
"""
1616

1717
def print_mode_info(self) -> None:
18-
cpsr = self.read_reg('cpsr')
18+
cpsr = self.read_reg(self._flags_reg)
1919

2020
flags = ArchARM.get_flags(cpsr)
2121
mode = ArchARM.get_mode(cpsr)

0 commit comments

Comments
 (0)