Skip to content

Commit 54113d8

Browse files
ucgJheucgJhe
authored andcommitted
fix mcu issue in qdb and show flags with color BLUE in uppercase, otherwise green lowercase
1 parent d4807f5 commit 54113d8

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

qiling/arch/cortex_m_const.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"apsr": UC_ARM_REG_APSR,
3232
"ipsr": UC_ARM_REG_IPSR,
3333
"epsr": UC_ARM_REG_EPSR,
34+
"cpsr": UC_ARM_REG_CPSR,
3435
"primask": UC_ARM_REG_PRIMASK,
3536
"faultmask": UC_ARM_REG_FAULTMASK,
3637
"basepri": UC_ARM_REG_BASEPRI,

qiling/debugger/qdb/render/render_arm.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,16 @@ def __init__(self, ql, predictor):
1919

2020
@staticmethod
2121
def print_mode_info(bits):
22-
print(color.GREEN, "[{cpsr[mode]} mode], Thumb: {cpsr[thumb]}, FIQ: {cpsr[fiq]}, IRQ: {cpsr[irq]}, NEG: {cpsr[neg]}, ZERO: {cpsr[zero]}, Carry: {cpsr[carry]}, Overflow: {cpsr[overflow]}".format(cpsr=ArchARM.get_flags(bits)), color.END, sep="")
22+
flags = ArchARM.get_flags(bits)
23+
24+
print(f"[{flags.pop('mode')} mode] ", end="")
25+
for key, val in flags.items():
26+
if val:
27+
print(f"{color.BLUE}{key.upper()} ", end="")
28+
else:
29+
print(f"{color.GREEN}{key.lower()} ", end="")
30+
31+
print(color.END)
2332

2433
@Render.divider_printer("[ REGISTERS ]")
2534
def context_reg(self, saved_reg_dump):

qiling/debugger/qdb/render/render_x86.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,17 @@ def context_reg(self, saved_reg_dump):
2222
cur_regs = self.dump_regs()
2323
diff_reg = self.reg_diff(cur_regs, saved_reg_dump)
2424
self.render_regs_dump(cur_regs, diff_reg=diff_reg)
25-
print(color.GREEN, "EFLAGS: [CF: {flags[CF]}, PF: {flags[PF]}, AF: {flags[AF]}, ZF: {flags[ZF]}, SF: {flags[SF]}, OF: {flags[OF]}]".format(flags=self.get_flags(self.ql.arch.regs.eflags)), color.END, sep="")
25+
26+
flags = self.get_flags(self.ql.arch.regs.eflags)
27+
print("EFLAGS: ", end="")
28+
print(color.GREEN, end="")
29+
for key, val in flags.items():
30+
if val:
31+
print(f"{color.BLUE}{key.upper()} ", end="")
32+
else:
33+
print(f"{color.GREEN}{key.lower()} ", end="")
34+
35+
print(color.END)
2636

2737
@Render.divider_printer("[ DISASM ]")
2838
def context_asm(self):

0 commit comments

Comments
 (0)