ROOT logo
// @(#)root/memstat:$Name$:$Id: TMemStatDepend.h 24658 2008-07-04 09:06:58Z anar $
// Author: M.Ivanov   18/06/2007 -- Anar Manafov (A.Manafov@gsi.de) 28/04/2008

/*************************************************************************
 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/
#ifndef ROOT_TMEMSTATDEPEND
#define ROOT_TMEMSTATDEPEND

//
//  TMemStatDepend
//  Non standard C++ functions
//  Needed for memory statistic

#define _INIT_TOP_STECK extern void *g_global_stack_end;
#define _GET_TO_STECK g_global_stack_end = __builtin_frame_address(1);

class TString;

class TMemStatDepend
{
public:
   //
   // Memory management HOOK functions
   //
   typedef void* (*MallocHookFunc_t)(size_t size, const void *caller);
   typedef void (*FreeHookFunc_t)(void* ptr, const void *caller);

   static MallocHookFunc_t GetMallocHook();         // malloc function getter
   static FreeHookFunc_t   GetFreeHook();           // free function getter
   static void SetMallocHook(MallocHookFunc_t p);   // malloc function setter
   static void SetFreeHook(FreeHookFunc_t p);       // free function setter
   //
   // Backtrace functions
   //
   static size_t Backtrace(void **trace, size_t size, Bool_t _bUseGNUBuildinBacktrace = kFALSE);
   static char** BacktraceSymbols(void **trace, size_t size);
   static void GetSymbols(void *pFunction, TString &strInfo,  TString &strLib, TString &strFun, TString &strLine);
   static void Demangle(char *codeInfo, TString &str);
};

#endif

 TMemStatDepend.h:1
 TMemStatDepend.h:2
 TMemStatDepend.h:3
 TMemStatDepend.h:4
 TMemStatDepend.h:5
 TMemStatDepend.h:6
 TMemStatDepend.h:7
 TMemStatDepend.h:8
 TMemStatDepend.h:9
 TMemStatDepend.h:10
 TMemStatDepend.h:11
 TMemStatDepend.h:12
 TMemStatDepend.h:13
 TMemStatDepend.h:14
 TMemStatDepend.h:15
 TMemStatDepend.h:16
 TMemStatDepend.h:17
 TMemStatDepend.h:18
 TMemStatDepend.h:19
 TMemStatDepend.h:20
 TMemStatDepend.h:21
 TMemStatDepend.h:22
 TMemStatDepend.h:23
 TMemStatDepend.h:24
 TMemStatDepend.h:25
 TMemStatDepend.h:26
 TMemStatDepend.h:27
 TMemStatDepend.h:28
 TMemStatDepend.h:29
 TMemStatDepend.h:30
 TMemStatDepend.h:31
 TMemStatDepend.h:32
 TMemStatDepend.h:33
 TMemStatDepend.h:34
 TMemStatDepend.h:35
 TMemStatDepend.h:36
 TMemStatDepend.h:37
 TMemStatDepend.h:38
 TMemStatDepend.h:39
 TMemStatDepend.h:40
 TMemStatDepend.h:41
 TMemStatDepend.h:42
 TMemStatDepend.h:43
 TMemStatDepend.h:44
 TMemStatDepend.h:45
 TMemStatDepend.h:46
 TMemStatDepend.h:47