*
********************************************************************/
-#define POST_PROBEBLOCK_MIDDLE_MEM(SIZE, APITYPE, ADDR) \
- log.length += sprintf(log.data + log.length, \
- "`,%u`,%d`,%p", SIZE, APITYPE, ADDR)
-
-#define POST_PROBEBLOCK_BEGIN_MEM(LCTYPE, APINAME, RETTYPE, RETVALUE, INPUTFORMAT, ...) \
- newerrno = errno; \
- if(postBlockBegin(blockresult)) { \
- INIT_LOG; \
- APPEND_LOG_BASIC_NAME(LCTYPE, APINAME); \
- APPEND_LOG_INPUT(INPUTFORMAT, __VA_ARGS__); \
- APPEND_LOG_RESULT(RETTYPE, RETVALUE); \
- APPEND_LOG_CALLER()
-
#endif // __DA_MEMORY_H__
void *malloc(size_t size)
{
static void*(*mallocp)(size_t size);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNC_RTLD_NEXT(malloc);
add_memory_hash(pret, size);
}
- POST_PROBEBLOCK_BEGIN(LC_MEMORY, VT_PTR, pret, "%u", size);
- POST_PROBEBLOCK_MIDDLE_MEM(size, MEMORY_API_ALLOC, pret);
- APPEND_LOG_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "x", size);
PACK_MEMORY(size, MEMORY_API_ALLOC, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void free(void *ptr)
{
static void (*freep)(void *);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
GET_REAL_FUNC_RTLD_NEXT(free);
freep(ptr);
- POST_PROBEBLOCK_BEGIN(LC_MEMORY, VT_NULL, NULL, "%p", ptr);
- POST_PROBEBLOCK_MIDDLE_MEM(0, MEMORY_API_FREE, ptr);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "p", ptr);
PACK_MEMORY(0, MEMORY_API_FREE, ptr);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
}
/* calloc's helper fucntion
void *calloc(size_t nelem, size_t elsize)
{
static void *(*callocp)(size_t,size_t);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
if(!callocp) {
add_memory_hash(pret, nelem * elsize);
}
- POST_PROBEBLOCK_BEGIN(LC_MEMORY, VT_PTR, pret, "%u, %u", nelem, elsize);
- POST_PROBEBLOCK_MIDDLE_MEM(nelem * elsize, MEMORY_API_ALLOC, pret);
- APPEND_LOG_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "xx", nelem, elsize);
PACK_MEMORY(elsize, MEMORY_API_ALLOC, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void *realloc(void *memblock, size_t size)
{
static void *(*reallocp)(void *,size_t);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNC_RTLD_NEXT(realloc);
add_memory_hash(pret, size);
}
- POST_PROBEBLOCK_BEGIN(LC_MEMORY, VT_PTR, pret, "%p, %u", memblock, size);
- POST_PROBEBLOCK_MIDDLE_MEM(size, MEMORY_API_ALLOC, pret);
- APPEND_LOG_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "px", memblock, size);
PACK_MEMORY(size, MEMORY_API_ALLOC, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void *memset(void *memblock, int c, size_t n)
{
static void *(*memsetp)(void *,int,size_t);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNC_RTLD_NEXT(memset);
pret = memsetp(memblock, c, n);
- POST_PROBEBLOCK_BEGIN(LC_MEMORY, VT_PTR, pret, "%p, %d, %u", memblock, c, n);
- POST_PROBEBLOCK_MIDDLE_MEM(n, MEMORY_API_MANAGE, memblock);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "pdx", memblock, c, n);
PACK_MEMORY(n, MEMORY_API_MANAGE, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
int memcmp(const void * ptr1, const void * ptr2, size_t num)
{
static int(*memcmpp)(const void *,const void *,size_t);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
GET_REAL_FUNC_RTLD_NEXT(memcmp);
ret = memcmpp(ptr1, ptr2, num);
- POST_PROBEBLOCK_BEGIN(LC_MEMORY, VT_INT, ret, "%p, %p, %u", ptr1, ptr2, num);
- POST_PROBEBLOCK_MIDDLE_MEM(num, MEMORY_API_MANAGE, ptr1);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "ppx", ptr1, ptr2, num);
PACK_MEMORY(num, MEMORY_API_MANAGE, ret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return ret;
}
void *memcpy(void * destination, const void * source, size_t num )
{
static void *(*memcpyp)(void *,const void *,size_t);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNC_RTLD_NEXT(memcpy);
pret = memcpyp(destination, source, num);
- POST_PROBEBLOCK_BEGIN(LC_MEMORY, VT_PTR, pret, "%p, %p, %u", destination, source, num);
- POST_PROBEBLOCK_MIDDLE_MEM(num, MEMORY_API_MANAGE, destination);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "ppx", destination, source, num);
PACK_MEMORY(num, MEMORY_API_MANAGE, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void *operator new(std::size_t size) throw (std::bad_alloc)
{
static void*(*newp)(std::size_t size);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_Znwj,newp);
add_memory_hash(pret, size);
}
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "new", VT_PTR, pret, "%u", size);
- POST_PROBEBLOCK_MIDDLE_MEM(size, MEMORY_API_ALLOC, pret);
- APPEND_LOG_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "x", size);
PACK_MEMORY(size, MEMORY_API_ALLOC, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void *operator new[](std::size_t size) throw (std::bad_alloc)
{
static void*(*newp)(std::size_t size);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_Znaj, newp);
add_memory_hash(pret, size);
}
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "new", VT_PTR, pret, "%u", size);
- POST_PROBEBLOCK_MIDDLE_MEM(size, MEMORY_API_ALLOC, pret);
- APPEND_LOG_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "x", size);
PACK_MEMORY(size, MEMORY_API_ALLOC, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void operator delete(void *ptr) throw()
{
static void (*deletep)(void *ptr);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_ZdlPv, deletep);
deletep(ptr);
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "delete", VT_NULL, NULL, "%p", ptr);
- POST_PROBEBLOCK_MIDDLE_MEM(0, MEMORY_API_FREE, ptr);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "p", ptr);
PACK_MEMORY(0, MEMORY_API_FREE, ptr);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
}
void operator delete[](void *ptr) throw()
{
static void (*deletep)(void *ptr);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_ZdaPv, deletep);
deletep(ptr);
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "delete", VT_NULL, NULL, "%p", ptr);
- POST_PROBEBLOCK_MIDDLE_MEM(0, MEMORY_API_FREE, ptr);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "p", ptr);
PACK_MEMORY(0, MEMORY_API_FREE, ptr);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
}
void *operator new(std::size_t size, const std::nothrow_t& nothrow) throw()
{
static void*(*newp)(std::size_t size, const std::nothrow_t& nothrow);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_ZnwjRKSt9nothrow_t, newp);
add_memory_hash(pret, size);
}
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "new", VT_PTR, pret, "%u", size);
- POST_PROBEBLOCK_MIDDLE_MEM(size, MEMORY_API_ALLOC, pret);
- APPEND_LOG_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "xp", size, ¬hrow);
PACK_MEMORY(size, MEMORY_API_ALLOC, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void *operator new[](std::size_t size, const std::nothrow_t& nothrow) throw()
{
static void*(*newp)(std::size_t size, const std::nothrow_t& nothrow);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
void *pret;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_ZnajRKSt9nothrow_t, newp);
add_memory_hash(pret, size);
}
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "new", VT_PTR, pret, "%u", size);
- POST_PROBEBLOCK_MIDDLE_MEM(size, MEMORY_API_ALLOC, pret);
- APPEND_LOG_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "xp", size, ¬hrow);
PACK_MEMORY(size, MEMORY_API_ALLOC, pret);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
return pret;
}
void operator delete(void *ptr, const std::nothrow_t& nothrow) throw()
{
static void (*deletep)(void *ptr, const std::nothrow_t& nothrow);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_ZdlPvRKSt9nothrow_t, deletep);
deletep(ptr, nothrow);
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "delete", VT_NULL, NULL, "%p", ptr);
- POST_PROBEBLOCK_MIDDLE_MEM(0, MEMORY_API_FREE, ptr);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "pp", ptr, ¬hrow);
PACK_MEMORY(0, MEMORY_API_FREE, ptr);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
}
void operator delete[](void *ptr, const std::nothrow_t& nothrow) throw()
{
static void (*deletep)(void *ptr, const std::nothrow_t& nothrow);
- DECLARE_VARIABLE_STANDARD; log_t log;
+ DECLARE_VARIABLE_STANDARD;
GET_REAL_FUNCP_RTLD_NEXT_CPP(_ZdaPvRKSt9nothrow_t, deletep);
deletep(ptr, nothrow);
- POST_PROBEBLOCK_BEGIN_MEM(LC_MEMORY, "delete", VT_NULL, NULL, "%p", ptr);
- POST_PROBEBLOCK_MIDDLE_MEM(0, MEMORY_API_FREE, ptr);
- POST_PROBEBLOCK_CALLSTACK();
+ POST_PACK_PROBEBLOCK_BEGIN();
PREPARE_LOCAL_BUF();
PACK_COMMON_BEGIN(MSG_PROBE_MEMORY, LC_MEMORY, "pp", ptr, ¬hrow);
PACK_MEMORY(0, MEMORY_API_FREE, ptr);
FLUSH_LOCAL_BUF();
- POST_PROBEBLOCK_END();
+ POST_PACK_PROBEBLOCK_END();
}