pio debug --interface=gdb --interpreter=mi2 does not wrap diagnostics messages into proper format

Author: elmotCreated Apr 2, 2025Updated Sep 5, 2026
Labelsbugdebugging

Steps to reproduce:

  1. Create a project with following platformio.ini:
ini
[env:hifive1]
platform = sifive
board = hifive1
framework = freedom-e-sdk
debug_tool = qemu
build_type = debug
  1. Start debug session in mi mode: pio debug --interface=gdb --interpreter=mi2 -x .pioinit --iex "set mi-async on" -e hifive1
  2. issue a command: x/xb 0xc000000

Expected result: Well-formed MI records. for example a error should look like:

^error,msg="sifive_plic_read: Invalid register read 0x0"
~"0xc000000:\t0x00\n"
^done

Actual result: Malformed text:

sifive_plic_read: Invalid register read 0x0
~"0xc000000:\t0x00\n"
^done

Source: platformio/platformio-core