debug.h File Reference

Debug-header. More...

Detailed Description

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.

Author
Kaspar Schleiser kaspa.nosp@m.r@sc.nosp@m.hleis.nosp@m.er.d.nosp@m.e

Definition in file debug.h.

#include <stdio.h>
#include "sched.h"
#include "thread.h"
#include "cpu_conf.h"
+ Include dependency graph for debug.h:

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...
 

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. Otherwise it is an empty string.
 
#define DEBUG(...)   if (ENABLE_DEBUG) { DEBUG_PRINT(__VA_ARGS__); }
 Print debug information to stdout. More...
 
#define DEBUG_PUTS(str)   if (ENABLE_DEBUG) { puts(str); }
 Print debug information to stdout using puts(), so no stack size restrictions do apply.
 

Macro Definition Documentation

◆ DEBUG

#define DEBUG (   ...)    if (ENABLE_DEBUG) { DEBUG_PRINT(__VA_ARGS__); }

Print debug information to stdout.

Note
Another name for DEBUG_PRINT

Definition at line 97 of file debug.h.

◆ DEBUG_PRINT

#define DEBUG_PRINT (   ...)
Value:
do { \
if ((thread_get_active() == NULL) || \
(thread_get_active()->stack_size >= \
printf(__VA_ARGS__); \
} \
else { \
puts("Cannot debug, stack too small. Consider using DEBUG_PUTS()."); \
} \
} while (0)

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)

Definition at line 47 of file debug.h.

◆ ENABLE_DEBUG

#define ENABLE_DEBUG   0

This macro can be defined as 0 or other on a file-based level.

DEBUG() will generate output only if ENABLE_DEBUG is non-zero.

Definition at line 71 of file debug.h.

THREAD_EXTRA_STACKSIZE_PRINTF
#define THREAD_EXTRA_STACKSIZE_PRINTF
Size of the task's printf stack in bytes.
Definition: thread.h:239
thread_get_active
static thread_t * thread_get_active(void)
Returns a pointer to the Thread Control Block of the currently running thread.
Definition: thread.h:486