using namespace std; #include "TraceFct.h" void f2( void ) { static int level = 0; TraceFct tf( "f2" ); level++; tf.message( "message test: %d\n", level ); tf.message( "1. multiline\n2. message test\n" ); tf.message( "f2 stack dump:\n" ); tf.dump_stack( ); if ( level < 12 ) f2(); } void f1( bool die ) { TraceFct tf( "f1" ); f2(); if ( die ) tf.exit( 1, "f1 exit: line1\nf1 exit: line2, extra newline\n" ); } int main( int argc, char * argv[] ) { TraceFct tf( argv[0], 0, -1 ); if ( argc > 1 ) tf.open( argv[1] ); f1( argc > 2 ); tf.close( ); tf.message( "main stack dump\n" ); tf.dump_stack( ); return EXIT_SUCCESS; }