Debug Support Classes
[Base Classes and Functions]

Collaboration diagram for Debug Support Classes:


Classes

class  TC::Heap
 Heap interface definition. More...
class  TC::New
 A class which provides the functionality to check allocations and deallocations. More...

Namespaces

namespace  TC
namespace  TC::Output
 class used for debug output

Files

file  TCAssert.h
 This file provides the definition of TC_ASSERT, TC_VERIFY and TC_CT_ASSERT.
file  TCHeap.h
 This file provides the definition of the interface TC::Heap.
file  TCNew.h
 This file provides the definition of TC::New.
file  TCNewDisable.h
 Disables the redefinition of the operator new and delete to dedect memory leaks.
file  TCNewEnable.h
 Enables the redefinition of the operator new and delete to dedect memory leaks.
file  TCOutput.h
 This file provides the definition of TC::Output and Macros for writing traces, infos warnings and errors.

Defines

#define TC_ASSERT(EX)   assert(EX)
 Macro for asserting errors.
#define TC_VERIFY(EX)   assert(EX)
 Macro for asserting errors.
#define TC_IMPL_JOIN(X, Y)   TC_IMPL_DO_JOIN( X, Y )
#define TC_IMPL_DO_JOIN(X, Y)   TC_IMPL_DO_JOIN2(X,Y)
#define TC_IMPL_DO_JOIN2(X, Y)   X##Y
#define TC_CT_ASSERT(VAL)
 Macro for asserting errors at compile time.
#define TC_USE_MEM_CHECK   1
#define TC_NEW_THROW   _THROW1(std::bad_alloc)
#define TC_DEL_THROW   _THROW0()
#define TC_CRT_DECL   __cdecl
#define TC_NEW   new(__FILE__, __LINE__)
#define new   TC_NEW
#define _TC_FUNCTION_   __FUNCTION__
#define TCTRACE_ENABLE
#define TCTRACE(MODULE, LEVEL, FORMAT)   TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT)
#define TCTRACE1(MODULE, LEVEL, FORMAT, ARG1)   TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)
#define TCTRACE2(MODULE, LEVEL, FORMAT, ARG1, ARG2)   TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)
#define TCTRACE3(MODULE, LEVEL, FORMAT, ARG1, ARG2, ARG3)   TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)
#define TCTRACE4(MODULE, LEVEL, FORMAT, ARG1, ARG2, ARG3, ARG4)   TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)
#define TCTRACEF(MODULE, LEVEL)   TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, "")
#define TCTRACES(MODULE, LEVEL, STREAM)
#define TCINFO(MODULE, FORMAT)   TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT)
#define TCINFO1(MODULE, FORMAT, ARG1)   TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)
#define TCINFO2(MODULE, FORMAT, ARG1, ARG2)   TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)
#define TCINFO3(MODULE, FORMAT, ARG1, ARG2, ARG3)   TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)
#define TCINFO4(MODULE, FORMAT, ARG1, ARG2, ARG3, ARG4)   TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)
#define TCINFOS(MODULE, STREAM)
#define TCWARNING(MODULE, FORMAT)   TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT)
#define TCWARNING1(MODULE, FORMAT, ARG1)   TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)
#define TCWARNING2(MODULE, FORMAT, ARG1, ARG2)   TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)
#define TCWARNING3(MODULE, FORMAT, ARG1, ARG2, ARG3)   TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)
#define TCWARNING4(MODULE, FORMAT, ARG1, ARG2, ARG3, ARG4)   TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)
#define TCWARNINGS(MODULE, STREAM)
#define TCERROR(MODULE, FORMAT)   TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT)
#define TCERROR1(MODULE, FORMAT, ARG1)   TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)
#define TCERROR2(MODULE, FORMAT, ARG1, ARG2)   TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)
#define TCERROR3(MODULE, FORMAT, ARG1, ARG2, ARG3)   TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)
#define TCERROR4(MODULE, FORMAT, ARG1, ARG2, ARG3, ARG4)   TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)
#define TCERRORS(MODULE, STREAM)

Functions

void *__cdecl operator new (std::size_t size)
void *__cdecl operator new[] (std::size_t size)
void *__cdecl operator new (std::size_t size, const char *fileName, int line)
void *__cdecl operator new[] (std::size_t size, const char *fileName, int line)
void __cdecl operator delete (void *p)
void __cdecl operator delete[] (void *p)
void __cdecl operator delete (void *p, const char *fileName, int line)
void __cdecl operator delete[] (void *p, const char *fileName, int line)

Define Documentation

#define TC_ASSERT ( EX   )     assert(EX)

Macro for asserting errors.

The expression of the macro is not executed in release builds

Definition at line 58 of file TCAssert.h.

#define TC_VERIFY ( EX   )     assert(EX)

Macro for asserting errors.

The expression of the macro is executed in release builds but not checked

Definition at line 63 of file TCAssert.h.

#define TC_IMPL_JOIN ( X,
 )     TC_IMPL_DO_JOIN( X, Y )

Definition at line 83 of file TCAssert.h.

#define TC_IMPL_DO_JOIN ( X,
 )     TC_IMPL_DO_JOIN2(X,Y)

Definition at line 84 of file TCAssert.h.

#define TC_IMPL_DO_JOIN2 ( X,
 )     X##Y

Definition at line 85 of file TCAssert.h.

#define TC_CT_ASSERT ( VAL   ) 

Value:

typedef TC::Impl::CompileTimeAssertTest<                                                  \
               sizeof(TC::Impl::CompileTimeAssertFailure<(bool)(VAL)>)                       \
                                          > TC_IMPL_JOIN(__tc_static_assert_type_, __LINE__)
Macro for asserting errors at compile time.

Definition at line 90 of file TCAssert.h.

#define TC_USE_MEM_CHECK   1

Definition at line 55 of file TCNewEnable.h.

#define TC_NEW_THROW   _THROW1(std::bad_alloc)

Definition at line 84 of file TCNewEnable.h.

#define TC_DEL_THROW   _THROW0()

Definition at line 85 of file TCNewEnable.h.

#define TC_CRT_DECL   __cdecl

Definition at line 86 of file TCNewEnable.h.

#define TC_NEW   new(__FILE__, __LINE__)

Definition at line 109 of file TCNewEnable.h.

#define new   TC_NEW

Definition at line 110 of file TCNewEnable.h.

#define _TC_FUNCTION_   __FUNCTION__

Definition at line 142 of file TCOutput.h.

#define TCTRACE_ENABLE

Definition at line 149 of file TCOutput.h.

#define TCTRACE ( MODULE,
LEVEL,
FORMAT   )     TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT)

Definition at line 154 of file TCOutput.h.

#define TCTRACE1 ( MODULE,
LEVEL,
FORMAT,
ARG1   )     TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)

Definition at line 155 of file TCOutput.h.

#define TCTRACE2 ( MODULE,
LEVEL,
FORMAT,
ARG1,
ARG2   )     TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)

Definition at line 156 of file TCOutput.h.

#define TCTRACE3 ( MODULE,
LEVEL,
FORMAT,
ARG1,
ARG2,
ARG3   )     TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)

Definition at line 157 of file TCOutput.h.

#define TCTRACE4 ( MODULE,
LEVEL,
FORMAT,
ARG1,
ARG2,
ARG3,
ARG4   )     TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)

Definition at line 158 of file TCOutput.h.

#define TCTRACEF ( MODULE,
LEVEL   )     TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, "")

Definition at line 159 of file TCOutput.h.

#define TCTRACES ( MODULE,
LEVEL,
STREAM   ) 

Value:

{ \
        std::string val; \
        TC::StreamPtr stream(TC::Factory::CreateStringStream(val)); \
        stream << STREAM; \
        TC::Output::Trace(MODULE, LEVEL, _TC_FUNCTION_, __LINE__, "%s", val.c_str()); \
    }

Definition at line 160 of file TCOutput.h.

#define TCINFO ( MODULE,
FORMAT   )     TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT)

Definition at line 178 of file TCOutput.h.

#define TCINFO1 ( MODULE,
FORMAT,
ARG1   )     TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)

Definition at line 179 of file TCOutput.h.

#define TCINFO2 ( MODULE,
FORMAT,
ARG1,
ARG2   )     TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)

Definition at line 180 of file TCOutput.h.

#define TCINFO3 ( MODULE,
FORMAT,
ARG1,
ARG2,
ARG3   )     TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)

Definition at line 181 of file TCOutput.h.

#define TCINFO4 ( MODULE,
FORMAT,
ARG1,
ARG2,
ARG3,
ARG4   )     TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)

Definition at line 182 of file TCOutput.h.

#define TCINFOS ( MODULE,
STREAM   ) 

Value:

{ \
    std::string val; \
    TC::StreamPtr stream(TC::Factory::CreateStringStream(val)); \
    stream << STREAM; \
    TC::Output::Info(MODULE, _TC_FUNCTION_, __LINE__, "%s", val.c_str()); \
}

Definition at line 183 of file TCOutput.h.

#define TCWARNING ( MODULE,
FORMAT   )     TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT)

Definition at line 191 of file TCOutput.h.

#define TCWARNING1 ( MODULE,
FORMAT,
ARG1   )     TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)

Definition at line 192 of file TCOutput.h.

#define TCWARNING2 ( MODULE,
FORMAT,
ARG1,
ARG2   )     TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)

Definition at line 193 of file TCOutput.h.

#define TCWARNING3 ( MODULE,
FORMAT,
ARG1,
ARG2,
ARG3   )     TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)

Definition at line 194 of file TCOutput.h.

#define TCWARNING4 ( MODULE,
FORMAT,
ARG1,
ARG2,
ARG3,
ARG4   )     TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)

Definition at line 195 of file TCOutput.h.

#define TCWARNINGS ( MODULE,
STREAM   ) 

Value:

{ \
    std::string val; \
    TC::StreamPtr stream(TC::Factory::CreateStringStream(val)); \
    stream << STREAM; \
    TC::Output::Warning(MODULE, _TC_FUNCTION_, __LINE__, "%s", val.c_str()); \
}

Definition at line 196 of file TCOutput.h.

#define TCERROR ( MODULE,
FORMAT   )     TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT)

Definition at line 204 of file TCOutput.h.

#define TCERROR1 ( MODULE,
FORMAT,
ARG1   )     TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1)

Definition at line 205 of file TCOutput.h.

#define TCERROR2 ( MODULE,
FORMAT,
ARG1,
ARG2   )     TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2)

Definition at line 206 of file TCOutput.h.

#define TCERROR3 ( MODULE,
FORMAT,
ARG1,
ARG2,
ARG3   )     TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3)

Definition at line 207 of file TCOutput.h.

#define TCERROR4 ( MODULE,
FORMAT,
ARG1,
ARG2,
ARG3,
ARG4   )     TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, FORMAT, ARG1, ARG2, ARG3, ARG4)

Definition at line 208 of file TCOutput.h.

#define TCERRORS ( MODULE,
STREAM   ) 

Value:

{ \
    std::string val; \
    TC::StreamPtr stream(TC::Factory::CreateStringStream(val)); \
    stream << STREAM; \
    TC::Output::Error(MODULE, _TC_FUNCTION_, __LINE__, "%s", val.c_str()); \
}

Definition at line 209 of file TCOutput.h.


Function Documentation

void* __cdecl operator new ( std::size_t  size  ) 

void* __cdecl operator new[] ( std::size_t  size  ) 

void* __cdecl operator new ( std::size_t  size,
const char *  fileName,
int  line 
)

void* __cdecl operator new[] ( std::size_t  size,
const char *  fileName,
int  line 
)

void __cdecl operator delete ( void *  p  ) 

Definition at line 61 of file TCDebugNew.h.

References TC::New::GetInstance().

Here is the call graph for this function:

void __cdecl operator delete[] ( void *  p  ) 

Definition at line 69 of file TCDebugNew.h.

References TC::New::GetInstance().

Here is the call graph for this function:

void __cdecl operator delete ( void *  p,
const char *  fileName,
int  line 
)

Definition at line 76 of file TCDebugNew.h.

References TC::New::GetInstance().

Here is the call graph for this function:

void __cdecl operator delete[] ( void *  p,
const char *  fileName,
int  line 
)

Definition at line 83 of file TCDebugNew.h.

References TC::New::GetInstance().

Here is the call graph for this function:


Copyright (c) Thomas Goessler 2003 - 2008