There are 3 types (build_type) of build configuration in PlatformIO:
Default configuration. A “release” configuration of your firmware/program does not contain symbolic debug information and is optimized for the firmware size or speed (depending on Development Platforms)
A “test” configuration extends a build environment with
PIO_UNIT_TESTINGmacro and with extra flags provided by the Unit Testing framework
A “debug” configuration of your firmware/program is compiled with full symbolic debug information and no optimization. Optimization complicates debugging because the relationship between source code and generated instructions is more complex.
If you need to control build flags that are specific for debug configuration please refer to debug_build_flags.
If you need to build a project in
debug configuration, please use one of
pio run --targetcommand.
To avoid having Debugging rebuild the project, please create a
separate build environment that defines
build_type = debug. See
the example below where the
mydebug build environment will be used
automatically by Debugging:
[env] platform = ... board = ... framework = ... ... other common configuration [env:myrelease] some_extra_options = ... [env:mydebug] build_type = debug some_extra_options = ...