28 #ifndef CASA_MEMORYTRACE_H
29 #define CASA_MEMORYTRACE_H
101 static std::ofstream&
writeAlloc (
const void* ptr,
size_t);
102 static std::ofstream&
writeFree (
const void* ptr);
105 static void*
mallocHook (
size_t,
const void* caller);
106 static void freeHook (
void*,
const void* caller);
117 static void* (*theirOldMallocHook)(size_t,
const void*);
151 #define traceMemoryAlloc(ptr,size,msg) \
152 if (casacore::MemoryTrace::isOpen()) { \
153 casacore::MemoryTrace::writeAlloc (ptr, size) << msg << std::endl; \
155 #define traceMemoryFree(ptr,msg) \
156 if (casacore::MemoryTrace::isOpen()) { \
157 casacore::MemoryTrace::writeFree (ptr) << msg << std::endl; \
160 #define traceMemoryBlockBegin(name) \
161 if (casacore::MemoryTrace::isOpen()) { \
162 casacore::MemoryTrace::writeBlock(" begin ", name); \
164 #define traceMemoryBlockEnd(name) \
165 if (casacore::MemoryTrace::isOpen()) { \
166 casacore::MemoryTrace::writeBlock(" end ", name); \
~MemoryTraceBlock()
The constructor writes a block end message.
static void writeBlock(const char *msg, const std::string &name)
Write a block line in the output file.
static void open()
Open the trace file if not open yet.
Class to write begin and end block message.
static void start()
Start the tracing.
static void(* theirOldFreeHook)(void *, const void *)
static Bool isOn()
Is tracing on?
MemoryTraceBlock(const std::string &name)
The constructor writes a block begin message.
ABSTRACT CLASSES Abstract class for colors Any implementation of color should be able to provide a hexadecimal form of the if a human readable name(i.e."black").In many places throughout the plotter
static void * mallocHook(size_t, const void *caller)
The hooks for malloc and free writing the trace messages.
static Bool isOpen()
Is the tracing file opened?
memory usage tracing mechanism
bool Bool
Define the standard types used by Casacore.
static std::ofstream theirFile
measure the time it takes to execute parts of a program
static void freeHook(void *, const void *caller)
static void stop()
Stop the tracing.
static std::ofstream & writeAlloc(const void *ptr, size_t)
Write an alloc or free message.
static void close()
Close the tracing output file.
static std::ofstream & writeFree(const void *ptr)
static std::string makeString(const char *)
Make a string from a char* without tracing a possible malloc in the string constructor.
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.