Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
1007 B

#ifndef __LTRACE_H__
#define __LTRACE_H__
#define NO_LTRACE
/*#ifndef NO_LTRACE
#ifdef NDEBUG
#error I want ltrace!
#define NO_LTRACE
#endif
#endif*/
#ifndef NO_LTRACE
#ifndef THIS_FILE
const TCHAR THIS_FILE[] = __FILE__;
#endif
class __CLTraceScope
{
public:
__CLTraceScope(LPCTSTR, LPCTSTR, int);
__CLTraceScope(LPCTSTR, int);
~__CLTraceScope();
void scope(LPCTSTR, ...);
void ltrace(LPCTSTR, ...);
private:
LPCTSTR spacing();
LPCTSTR m_scope, m_file;
int m_line;
int m_depth;
static int s_depth;
// __CLTraceScope *m_pprev, *m_pnext;
// static __CLTraceScope *s_pfirst, *s_plast;
};
#define LTSCOPE0(scope) __CLTraceScope __localscope(scope, THIS_FILE, __LINE__)
#define LTSCOPE __CLTraceScope __localscope(THIS_FILE, __LINE__); __localscope.scope
#define LTRACE __localscope.ltrace
#else
inline void __localscope_dummy(LPCTSTR, ...) {}
#define LTSCOPE0(scope) (void(0))
#define LTSCOPE ; __localscope_dummy
#define LTRACE __localscope_dummy
#endif
#endif //__LTRACE_H__