Skip to content

Commit ee5be70

Browse files
authored
[skip changelog] Document debug system in platform specification (#882)
1 parent b4a480f commit ee5be70

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

docs/platform-specification.md

+28
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ The following automatically generated properties can be used globally in all con
9797
intent, `-DARDUINO_LIB_DISCOVERY_PHASE` was added to `recipe.preproc.macros` during library discovery in Arduino
9898
Builder 1.5.3/Arduino CLI 0.10.0. That flag was replaced by the more flexible `{build.library_discovery_phase}`
9999
property.
100+
- `{compiler.optimization_flags}`: see ["Sketch debugging configuration"](#sketch-debugging-configuration) for details
100101
- `{extra.time.utc}`: Unix time (seconds since 1970-01-01T00:00:00Z) according to the machine the build is running on
101102
- `{extra.time.local}`: Unix time with local timezone and DST offset
102103
- `{extra.time.zone}`: local timezone offset without the DST component
@@ -538,6 +539,7 @@ used for different purposes:
538539
- **program** a sketch to the target board using an external programmer
539540
- **erase** the target board's flash memory using an external programmer
540541
- burn a **bootloader** into the target board using an external programmer
542+
- **debug** a sketch
541543

542544
Each action has its own recipe and its configuration is done through a set of properties having key starting with
543545
**tools** prefix followed by the tool ID and the action:
@@ -699,6 +701,32 @@ The file component of the port's path (e.g., `ttyACM0`) is available as the conf
699701

700702
**TODO...**<br> The platform.txt associated with the selected board will be used.
701703

704+
### Sketch debugging configuration
705+
706+
Starting from Arduino CLI 0.9.0 / Arduino Pro IDE v0.0.5-alpha.preview, sketch debugging support is available for
707+
platforms.
708+
709+
The debug action is triggered when the user clicks **Debug > Start Debugging** in the Arduino Pro IDE or runs the
710+
[`arduino-cli debug`](commands/arduino-cli_debug.md) command.
711+
712+
The **debug.tool** property specifies the tool ID of the tool to be used for debugging. A **debug.tool** property may be
713+
defined for each board in boards.txt.
714+
715+
The compiler optimization level that is appropriate for normal usage will often not provide a good experience while
716+
debugging. For this reason, it may be helpful to use different compiler flags when compiling a sketch for use with the
717+
debugger. The flags for use when compiling for debugging can be defined via the **compiler.optimization_flags.debug**
718+
property, and those for normal use via the **compiler.optimization_flags.release** property. The
719+
**compiler.optimization_flags** property will be defined according to one or the other depending on the Arduino Pro
720+
IDE's **Sketch > Optimize for Debugging** setting or [`arduino-cli compile`](commands/arduino-cli_compile.md)'s
721+
`--optimize-for-debug` option.
722+
723+
The debug recipe is defined via **tools.TOOL_NAME.debug.pattern**. It can be built concatenating the following
724+
automatically generated properties:
725+
726+
- `{interpreter}`: the GDB command interpreter to use. It is configurable via
727+
[`arduino-cli debug --interpreter`](commands/arduino-cli_debug.md). This property was added in Arduino CLI 0.10.0 /
728+
Arduino Pro IDE v0.0.7-alpha.preview.
729+
702730
## Custom board options
703731

704732
It can sometimes be useful to provide user selectable configuration options for a specific board. For example, a board

0 commit comments

Comments
 (0)