MRI - Monitor for Remote Inspection. The gdb compatible debug monitor for Cortex-M devices.
C C++ Assembly Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
CppUTest @ 011f371


MRI - Monitor for Remote Inspection

MRI is a debug monitor which allows the GNU debugger, GDB, to debug Cortex-M3/M4 processors. This makes it possible to debug applications running on Cortex-M devices using a full featured source level debugger with no extra hardware other than a serial connection.

Please Note: This project just contains the sources to build the MRI debug monitor library but doesn't show how to link it into your program and make use of it. Such an example is provided by the GCC4MBED project.

MRI Features

  • 6+ hardware breakpoints (actual number depends on device)
  • 4+ data watchpoints (actual number depends on device)
  • single stepping
  • runs over any of the UART ports on the device (selected when user compiles their code)
  • baud rate is determined at runtime (through GDB command line) on devices that support auto-baud detection
  • semi-host functionality:
    • stdout/stderr/stdin are redirected to/from the GDB console
    • mbed LocalFileSystem semi-host support (fopen, fwrite, fread, fseek, and fclose) - mbed-LPC1768 only
    • maintains access to mbed device's unique ethernet address - mbed-LPC1768 only
  • works with free GNU Tools for ARM Embedded Processors
  • no program binary size limitations
  • open source (Apache Licensed)

Devices Supported

Device Sample Boards
NXP LPC17xx mbed-1768
LPC1769 LPCXpresso Board
NXP LPC43xx Micromint Bambino 210
STM32F429XX STM32F429 Discovery kit

How to Clone

This project uses submodules (CppUTest for unit testing). Cloning requires a few more steps to get all of the necessary code.

git clone
cd mri
git submodule init
git submodule update

- or -

git clone --recursive

More MRI Information

Getting started with MRI in GCC4MBED: Documents how to setup the mbed device and GCC4MBED project to use MRI for debugging binaries. Also provides a walk through of a debugging session with one of the GCC4MBED samples.

Supported Host Platforms: Which platforms has GDB been run on while connected to MRI.

Supported Devices: Which devices can currently be debugged with MRI.

Why use MRI: Documents the advantages of using a debug monitor like MRI and its known limitations.

Porting MRI: Notes on how to port MRI to new devices.

Reporting a Problem: How to extract information from your PC to show what was happening at the time a problem occurs in a MRI debugging session.

Frequently Asked Questions