Motr  M0
Debugging tools
Collaboration diagram for Debugging tools:

Macros

#define LOGD_VAR_NAME(module_name)   M0_CAT(m0_net_test_logd_, module_name)
 
#define LOGD_VAR_DECLARE(module_name)   extern bool LOGD_VAR_NAME(module_name);
 
#define LOGD(...)
 

Functions

 M0_BASSERT ("NET_TEST_MODULE_NAME should be defined " "before including debug.h"==NULL)
 
bool LOGD_VAR_NAME (NET_TEST_MODULE_NAME)
 

Detailed Description

Usage recipe 0. in .c file

  1. #define NET_TEST_MODULE_NAME name_of_net_test_module
  2. #include "net/test/debug.h"
  3. Use LOGD() macro for regular debug output.
  4. #undef NET_TEST_MODULE_NAME in the end of file (or scope in which LOGD() is needed) (because of altogether build mode).
  5. Enable/disable debug output from any point using LOGD_VAR_NAME(some_module_name) variable (declared using LOGD_VAR_DECLARE(some_module_name)) Debug output is disabled by default.

Macro names used: LOGD, NET_TEST_MODULE_NAME, LOGD_VAR_DECLARE, LOGD_VAR_NAME

Note
Include guards are not needed in this file because LOGD_VAR_NAME(NET_TEST_MODULE_NAME) variable should be defined for each module that includes this file.

Macro Definition Documentation

◆ LOGD

#define LOGD (   ...)
Value:
do { \
M0_LOG(M0_DEBUG, __VA_ARGS__); \
} while (0)
#define LOGD_VAR_NAME(module_name)
Definition: debug.h:56
#define NET_TEST_MODULE_NAME
Definition: commands.c:34

Definition at line 72 of file debug.h.

◆ LOGD_VAR_DECLARE

#define LOGD_VAR_DECLARE (   module_name)    extern bool LOGD_VAR_NAME(module_name);

Definition at line 67 of file debug.h.

◆ LOGD_VAR_NAME

#define LOGD_VAR_NAME (   module_name)    M0_CAT(m0_net_test_logd_, module_name)

Definition at line 56 of file debug.h.

Function Documentation

◆ LOGD_VAR_NAME()

bool LOGD_VAR_NAME ( NET_TEST_MODULE_NAME  )

There is one variable per inclusion of this file. It is useful to enable/disable module debug messages from any point in code.

◆ M0_BASSERT()

M0_BASSERT ( "NET_TEST_MODULE_NAME should be defined " "before including debug.h"  = =NULL)