Using Debug Macros
If you are having trouble and want to debug without writing
std::cout << "blah" << std::endl << std::flush;
(etc) there is a handy helper macro list in source:trunk/global/src/Debug.hpp .
Trace
For the above example
TRACE("Some trace");
prints this to the screen:
DEBUG: Some trace
Printing variables
PRINT_VARIABLE(my_var); PRINT_VARIABLES(my_var, another_var); PRINT_3_VARIABLES(my_var, another_var, cancer_curing_constant); PRINT_4_VARIABLES(my_var, another_var, cancer_curing_constant, heart_disease_ending_constant); PRINT_VECTOR(vector); // std::vector of anything
will result in the following output
DEBUG: my_var = 3141
DEBUG: my_var = 3141, another_var = 2.81
DEBUG: my_var = 3141, another_var = 2.81, cancer_curing_constant = 0.0534502
DEBUG: my_var = 3141, another_var = 2.81, cancer_curing_constant = 0.0534502, heart_disease_ending_constant = -3e-141
DEBUG: vector = {0,1,2.7,3.1}
Determining if lines are reached
MARK;
will do something like
DEBUG: ./global/test/TestDebug.hpp at line 95
and
for (unsigned i=0; i<3; i++)
{
HOW_MANY_TIMES_HERE("my line");
}
outputs
DEBUG: Num times here (my line): 1 DEBUG: Num times here (my line): 2 DEBUG: Num times here (my line): 3
and
for (unsigned j=0; j<3; j++)
{
TRACE_FROM_NTH_VISIT("hello",2);
}
will output
DEBUG: hello (visit 2) DEBUG: hello (visit 3)
and finally,
QUIT_AFTER_N_VISITS(11);
will quit (assert(0), with "User-forced quit." output), the 11th time that line is visited.
