12#ifndef ARCANE_UTILS_IMEMORYINFO_H
13#define ARCANE_UTILS_IMEMORYINFO_H
17#include "arcane/utils/String.h"
18#include "arcane/utils/IFunctorWithArgument.h"
33 MemoryInfoChunk() : m_owner(0), m_size(0), m_alloc_id(0), m_iteration(0) {}
37 const void* owner()
const {
return m_owner; }
38 Int64 size()
const {
return m_size; }
39 Int64 allocId()
const {
return m_alloc_id; }
40 Integer iteration()
const {
return m_iteration; }
41 const String& stackTrace()
const {
return m_stack_trace; }
43 void setOwner(
const void*
o) { m_owner =
o; }
44 void setStackTrace(
const String& st) { m_stack_trace = st; }
83 virtual void addInfo(
const void* owner,
const void*
ptr,Int64 size) =0;
85 virtual void addInfo(
const void* owner,
const void*
ptr,Int64 size,
const void*
old_ptr) =0;
87 virtual void changeOwner(
const void*
new_owner,
const void*
ptr) =0;
89 virtual void removeInfo(
const void* owner,
const void*
ptr,
bool can_fail=
false) =0;
91 virtual void printInfos(std::ostream&
ostr) =0;
95 virtual void beginCollect() =0;
96 virtual void endCollect() =0;
97 virtual bool isCollecting()
const =0;
104 virtual void printAllocatedMemory(std::ostream&
ostr,Integer iteration) =0;
139 virtual Int64 nbAllocation()
const =0;
146arcaneGlobalMemoryInfo();
virtual void setIteration(Integer iteration)=0
Positionne le numéro de l'itération courante.
virtual void setStackTraceMinAllocSize(Int64 alloc_size)=0
Positionne la taille minimale des allocations dont on trace la pile d'appel.
virtual void removeOwner(const void *owner)=0
Supprime la référence sur owner.
virtual void createOwner(const void *owner, const TraceInfo &trace_info)=0
Crée une référence sur owner avec les infos de trace trace_info.
virtual void setTraceMng(ITraceMng *msg)=0
Positionne le ITraceMng pour les messages.
virtual void visitAllocatedBlocks(IFunctorWithArgumentT< const MemoryInfoChunk & > *functor) const =0
Visiteur sur l'ensemble des blocs alloués.
virtual void setOwner(const void *owner, const TraceInfo &new_info)=0
Modifie les infos de la référence owner.
virtual ~IMemoryInfo()
Libère les ressources.
virtual Int64 stackTraceMinAllocSize() const =0
Taille minimale des allocations dont on trace la pile d'appel.
virtual void setKeepStackTrace(bool is_active)=0
Indique si on active la sauvegarde de la pile d'appel.
virtual bool keepStackTrace() const =0
Indique si la sauvegarde de la pile d'appel est activée.
Informations sur un bloc alloué.
Interface du gestionnaire de traces.
Référence à une instance.
Chaîne de caractères unicode.