Skip to content

Investigating Defects

When Metalware discovers a defect, it appears on the Analysis Page with a classification and severity. Select any defect to see its full details, including a root cause analysis and stack trace.

Defect detail view showing classification, root cause analysis, and stack trace

Three debugging tools are available for reproducing and investigating defects: the Ghidra plugin, the Binary Ninja plugin, and remote GDB.

FeatureGhidraBinary NinjaGDB
Time-travel steppingYesYesYes
Register/memory inspectionYesYesYes
Breakpoints/watchpointsYesYesYes
Coverage overlaysYesYesNo
MMIO stream visibilityYesYesNo
Taint analysisYesYesNo

For installation and usage, see the Ghidra plugin repository.

For installation and usage, see the Binary Ninja plugin repository.

GDB is useful if you don’t have Ghidra or Binary Ninja, or if you need to script your debugging session.

  1. Select GDB Debug from the Actions pane.

  2. Follow the instructions in the dialog.

    GDB connection endpoint

  3. Connect and load your binary:

    file myfirmware.elf
CommandDescription
monitor helpList all available commands.
monitor resetReset the VM to its initial state (equivalent to a JTAG reset).
monitor icountPrint the current instruction count.
monitor backStep back one instruction.
monitor step NStep forward N instructions.
monitor goto NJump execution to instruction count N.
monitor backtracePrint the current call stack.
monitor snapshotSave the current VM state.
monitor restoreRestore the VM from a saved snapshot.
monitor pcodeShow the P-code IL for the current instruction.
monitor memory-mapPrint the memory layout.