#ifndef _TRACE_HPP #define _TRACE_HPP extern "C" { #include #include #include } #ifdef _TRACE_ON extern "C" { extern void POP_TRACE(); extern void PUSH_TRACE(char*); extern char* REPORT_TRACE(int); } #define TRACE(a) PUSH_TRACE(#a); #define RETURN {POP_TRACE(); return; } #define RETURN1(a) {POP_TRACE(); return(a); } #define REPORT() REPORT_TRACE(3) #else char* TRACELOC="global"; #define TRACE(a) TRACELOC=#a; #define RETURN return; #define RETURN1(a) return(a); #define REPORT() TRACELOC #endif #endif // _TRACE_HPP