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) {}
34 MemoryInfoChunk(
const void* aowner,Int64 asize,Int64 alloc_id,Integer aiteration)
35 : m_owner(aowner), m_size(asize), m_alloc_id(alloc_id), m_iteration(aiteration) {}
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 d'un fonctor avec argument mais sans valeur de retour.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.