Debug
This examples shows how use the debug macros for printing different kinds of debugging information
- Boards: 🛈
- AVR, AVR USB, Nano Every, Nano 33 IoT, Nano 33 BLE, UNO R4, Pi Pico, Due, Teensy 3.x, ESP8266, ESP32
Behavior
- Enable debugging by defining the DEBUG_OUT macro in
src/AH/Settings/Settings.hpp
or enable debugging globally as explained here
- Upload the sketch to the Arduino, and open the Serial Monitor (
CTRL+Shift+M
)
- Every five seconds, debugging information is printed, for example:
This is the result of `
DEBUG`
[/home/pieter/GitHub/Arduino-Debugging/Example/Example.ino:12]: This is the result of `
DEBUGREF`
[
void loop() @ line 13]: This is the result of `
DEBUGFN`
[0:2:11.085]: This is the result of `
DEBUGTIME`
a = 1, b = 2, c = 3
log10(1000) - 2 = 1.00
millis() = 131085
Serial.read() = -1
[int someFunction(int) @ line 26]: parameter = 42
#define DEBUG(x)
Print an expression to the debug output if debugging is enabled.
#define DEBUGFN(x)
Print an expression and its function (function name and line number) to the debug output if debugging...
#define DEBUGTIME(x)
Print an expression and the time since startup to the debug output if debugging is enabled.
#define DEBUGREF(x)
Print an expression and its location (file and line number) to the debug output if debugging is enabl...
- See also
- Debug for instructions on how to add an option in the Arduino IDE to easily enable and disable debugging globally without editing the settings file.
Written by PieterP, 2018-07-31
https://github.com/tttapa/Arduino-Helpers
void setup() {
Serial.begin(115200);
while (!Serial)
;
}
void loop() {
DEBUG(
"This is the result of `DEBUG`");
DEBUGREF(
"This is the result of `DEBUGREF`");
DEBUGFN(
"This is the result of `DEBUGFN`");
DEBUGTIME(
"This is the result of `DEBUGTIME`");
int a = 1, b = 2, c = 3;
(void)a, (void)b, (void)c;
someFunction(42);
delay(5000);
}
int someFunction(int parameter) {
return parameter;
}
Dummy header file for Arduino builder.
#define NAMEDVALUE(x)
Macro for printing an expression as a string, followed by its value.
#define DEBUGVAL(...)
Print multiple expressions and their values to the debug output if debugging is enabled.