Build Configurations
There are 3 types (build_type) of build configuration in PlatformIO:
release
: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)
test
:A “test” configuration extends a build environment with
PIO_UNIT_TESTING
macro and with extra flags provided by the Unit Testing frameworkdebug
: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.
Note
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
these options:
In PlatformIO IDE for VSCode: Use build option Pre-Debug or Pre-Debug All in the
Project Tasks
menu.Add build_type with
debug
value to “platformio.ini” (Project Configuration File)Use pio debug command.
Note
Debugging automatically switches to debug
configuration when you do
project debugging from PlatformIO IDE or use the pio debug command.
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 = ...
Please note that you can set a default build environment per a project using the default_envs option in Section [platformio].