debug macro

some notes about the debug macro

The debug macro is conveninet to in c/cpp program, sometimes, you want to hide these informations in delease version, sometimes you need to use them again when there is bug info. this is an example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#ifdef DEBUG_BUILD
# define DEBUG(x) std::cerr << x << std::endl;
#else
# define DEBUG(x) do {} while (0)
#endif

int main(){
char str[256];
sprintf(str, "self define %d", 123);
DEBUG(str);
DEBUG("debug point");
DEBUG("debug point function name: " << __PRETTY_FUNCTION__);

return 0;
}

The only necessary thing is to add the parameter -DDEBUG_BUILD when building the program. If the program is compiled by the cmake, just follow this answer, there are multiple ways to set it, such as:

1
SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")

推荐文章