Debug-header. More...
Debug-header.
If ENABLE_DEBUG is defined inside an implementation file, all calls to DEBUG will work the same as printf and output the given information to stdout. If ENABLE_DEBUG is not defined, all calls to DEBUG will be ignored.
Definition in file debug.h.
#include <stdio.h>#include "sched.h"#include "thread.h"#include "cpu_conf.h"#include "architecture.h"
Include dependency graph for debug.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | DEBUG_EXTRA_STACKSIZE THREAD_EXTRA_STACKSIZE_PRINTF |
| Extra stacksize needed when ENABLE_DEBUG==1. | |
| #define | DEBUG_PRINT(...) |
| Print debug information if the calling thread stack is large enough. More... | |
| #define | DEBUG_BREAKPOINT(val) ARCHITECTURE_BREAKPOINT(val) |
| Set a debug breakpoint. More... | |
Debugging defines | |
| #define | ENABLE_DEBUG 0 |
| This macro can be defined as 0 or other on a file-based level. More... | |
| #define | DEBUG_FUNC "" |
| Contains the function name if given compiler supports it. More... | |
| #define | DEBUG(...) do { if (ENABLE_DEBUG) { DEBUG_PRINT(__VA_ARGS__); } } while (0) |
| Print debug information to stdout. More... | |
| #define | DEBUG_PUTS(str) do { if (ENABLE_DEBUG) { puts(str); } } while (0) |
| Print debug information to stdout using puts(), so no stack size restrictions do apply. | |
| #define DEBUG | ( | ... | ) | do { if (ENABLE_DEBUG) { DEBUG_PRINT(__VA_ARGS__); } } while (0) |
Print debug information to stdout.
If a variable is only accessed by DEBUG(), the compiler will warn about unused variables when ENABLE_DEBUG is set to 0.
| #define DEBUG_BREAKPOINT | ( | val | ) | ARCHITECTURE_BREAKPOINT(val) |
Set a debug breakpoint.
When DEVELHELP is enabled, this traps the CPU and allows to debug the program with e.g. gdb. Without DEVELHELP this turns into a no-op.
| val | Breakpoint context for debugger, usually ignored. |
| #define DEBUG_FUNC "" |
| #define DEBUG_PRINT | ( | ... | ) |
Print debug information if the calling thread stack is large enough.
Use this macro the same as printf. When DEVELHELP is defined inside an implementation file, all usages of DEBUG_PRINT will print the given information to stdout after verifying the stack is big enough. If DEVELHELP is not set, this check is not performed. (CPU exception may occur)