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.

Feature Ghidra Binary Ninja GDB
Time-travel stepping Yes Yes Yes
Register/memory inspection Yes Yes Yes
Breakpoints/watchpoints Yes Yes Yes
Coverage overlays Yes Yes No
MMIO stream visibility Yes Yes No
Taint analysis Yes Yes No

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
Command Description
monitor help List all available commands.
monitor reset Reset the VM to its initial state (equivalent to a JTAG reset).
monitor icount Print the current instruction count.
monitor back Step back one instruction.
monitor step N Step forward N instructions.
monitor goto N Jump execution to instruction count N.
monitor backtrace Print the current call stack.
monitor snapshot Save the current VM state.
monitor restore Restore the VM from a saved snapshot.
monitor pcode Show the P-code IL for the current instruction.
monitor memory-map Print the memory layout.