Qdb Debugger

Qdb Debugger

Command-line debugger plugin for Qiling. Supports ARM and MIPS (thumb mode). Based on Qdb.

Enable

 1from qiling import Qiling
 2from qiling.const import QL_VERBOSE
 3
 4ql = Qiling([r'rootfs/arm_linux/bin/arm_hello'], r'rootfs/arm_linux', verbose=QL_VERBOSE.DEBUG)
 5
 6ql.debugger = "qdb"            # basic mode
 7ql.debugger = "qdb::rr"        # enable record-and-replay
 8ql.debugger = "qdb:0x1030c"    # enable + set breakpoint at 0x1030c
 9
10ql.run()

Commands

CommandAliasDescription
stepsExecute one instruction
continuecContinue execution
breakpoint <addr>bSet breakpoint at address
examine <addr>xRead data from memory at address
backwardpStep backward (requires rr=True; address must have been stepped over first)

Record and Replay

Enable with ql.debugger = "qdb::rr" or --rr flag in qltool.

Constraint: to step backward to an address, that address must have been executed via step previously in the same session.