Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::LibUnwindStackTraceService

Service de trace des appels de fonctions utilisant la libunwind. Plus de détails...

+ Graphe d'héritage de Arcane::LibUnwindStackTraceService:
+ Graphe de collaboration de Arcane::LibUnwindStackTraceService:

Classes

struct  ProcInfo
 

Fonctions membres publiques

 LibUnwindStackTraceService (const ServiceBuildInfo &sbi)
 
void build () override
 Construction de niveau build du service.
 
StackTrace stackTrace (int first_function) override
 Chaîne de caractère indiquant la pile d'appel.
 
StackTrace stackTraceFunction (int function_index) override
 Retourne la pile à d'appel actuelle.
 
- Fonctions membres publiques hérités de Arcane::AbstractService
virtual ~AbstractService ()
 Destructeur.
 
virtual IServiceInfoserviceInfo () const
 Accès aux informations du service.
 
virtual IBaseserviceParent () const
 Accès à l'interface de base des principaux objets Arcane.
 
virtual IServiceserviceInterface ()
 Retourne l'interface bas niveau IService du service.
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 
- Fonctions membres publiques hérités de Arcane::IService
virtual ~IService ()
 Libère les ressources.
 

Types privés

using ProcInfoMap = std::map< unw_word_t, ProcInfo >
 

Fonctions membres privées

ProcInfo _getFuncInfo (unw_word_t ip, unw_cursor_t *cursor)
 
ProcInfo _getFuncInfo (void *ip)
 Récupère le nom de la fonction via dladdr.
 
String _getGDBStack ()
 
StackTrace _backtraceStackTrace (const FixedStackFrameArray &stack_frames)
 Pile d'appel via la fonction backtrace.
 
String _generateFileAndOffset (const FixedStackFrameArray &stack_frames)
 Génère liste des noms de fichier et offset d'une pile d'appel.
 
FixedStackFrameArray _backtraceStackFrame (int first_function)
 Pile d'appel via la fonction backtrace.
 

Attributs privés

ProcInfoMap m_proc_name_map
 
std::mutex m_proc_name_map_mutex
 
bool m_want_gdb_info
 
bool m_use_backtrace
 
IApplicationm_application
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arcane::AbstractService
 AbstractService (const ServiceBuildInfo &)
 Constructeur à partir d'un ServiceBuildInfo.
 
- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 
- Fonctions membres protégées hérités de Arcane::IService
 IService ()
 Constructeur.
 

Description détaillée

Service de trace des appels de fonctions utilisant la libunwind.

Définition à la ligne 54 du fichier LibUnwindStackTraceService.cc.

Documentation des définitions de type membres

◆ ProcInfoMap

using Arcane::LibUnwindStackTraceService::ProcInfoMap = std::map<unw_word_t,ProcInfo>
private

Définition à la ligne 104 du fichier LibUnwindStackTraceService.cc.

Documentation des constructeurs et destructeur

◆ LibUnwindStackTraceService()

Arcane::LibUnwindStackTraceService::LibUnwindStackTraceService ( const ServiceBuildInfo sbi)
inline

Définition à la ligne 80 du fichier LibUnwindStackTraceService.cc.

Documentation des fonctions membres

◆ _backtraceStackFrame()

FixedStackFrameArray Arcane::LibUnwindStackTraceService::_backtraceStackFrame ( int  first_function)
private

Pile d'appel via la fonction backtrace.

Définition à la ligne 333 du fichier LibUnwindStackTraceService.cc.

Référencé par stackTrace().

◆ _backtraceStackTrace()

StackTrace Arcane::LibUnwindStackTraceService::_backtraceStackTrace ( const FixedStackFrameArray stack_frames)
private

Pile d'appel via la fonction backtrace.

Définition à la ligne 350 du fichier LibUnwindStackTraceService.cc.

Références Arccore::TraceAccessor::pinfo().

Référencé par stackTrace().

◆ _generateFileAndOffset()

String Arcane::LibUnwindStackTraceService::_generateFileAndOffset ( const FixedStackFrameArray stack_frames)
private

Génère liste des noms de fichier et offset d'une pile d'appel.

Génère une chaîne de caractère contenant pour chaque adresse de la pile d'appel stack_frames le nom du fichier contenant le symbol et l'offset de cette adresse dans ce fichier.

Le format de sortie permet la lecture par des outils tels que addr2line ou llmv-symbolizer.

Définition à la ligne 384 du fichier LibUnwindStackTraceService.cc.

Références Arccore::TraceAccessor::pinfo().

Référencé par stackTrace().

◆ _getFuncInfo() [1/2]

LibUnwindStackTraceService::ProcInfo Arcane::LibUnwindStackTraceService::_getFuncInfo ( unw_word_t  ip,
unw_cursor_t cursor 
)
private

Définition à la ligne 122 du fichier LibUnwindStackTraceService.cc.

◆ _getFuncInfo() [2/2]

LibUnwindStackTraceService::ProcInfo Arcane::LibUnwindStackTraceService::_getFuncInfo ( void addr)
private

Récupère le nom de la fonction via dladdr.

A faire:
: rendre thread-safe

Définition à la ligne 171 du fichier LibUnwindStackTraceService.cc.

◆ _getGDBStack()

String Arcane::LibUnwindStackTraceService::_getGDBStack ( )
private

Définition à la ligne 212 du fichier LibUnwindStackTraceService.cc.

◆ build()

void Arcane::LibUnwindStackTraceService::build ( void  )
inlineoverridevirtual

Construction de niveau build du service.

L'appel à build est effectué au moment de sa construction, usuellement au niveau de sa lecture dans les options en phase1.

Réimplémentée à partir de Arcane::AbstractService.

Définition à la ligne 88 du fichier LibUnwindStackTraceService.cc.

◆ stackTrace()

StackTrace Arcane::LibUnwindStackTraceService::stackTrace ( int  first_function)
overridevirtual

◆ stackTraceFunction()

StackTrace Arcane::LibUnwindStackTraceService::stackTraceFunction ( int  function_index)
overridevirtual

Retourne la pile à d'appel actuelle.

Les function_index premières fonctions de la pile sont ignorées.

Implémente Arccore::IStackTraceService.

Définition à la ligne 299 du fichier LibUnwindStackTraceService.cc.

Références Arccore::StringBuilder::toString().

Documentation des données membres

◆ m_application

IApplication* Arcane::LibUnwindStackTraceService::m_application
private

Définition à la ligne 110 du fichier LibUnwindStackTraceService.cc.

◆ m_proc_name_map

ProcInfoMap Arcane::LibUnwindStackTraceService::m_proc_name_map
private

Définition à la ligne 105 du fichier LibUnwindStackTraceService.cc.

◆ m_proc_name_map_mutex

std::mutex Arcane::LibUnwindStackTraceService::m_proc_name_map_mutex
private

Définition à la ligne 106 du fichier LibUnwindStackTraceService.cc.

◆ m_use_backtrace

bool Arcane::LibUnwindStackTraceService::m_use_backtrace
private

Définition à la ligne 109 du fichier LibUnwindStackTraceService.cc.

◆ m_want_gdb_info

bool Arcane::LibUnwindStackTraceService::m_want_gdb_info
private

Définition à la ligne 108 du fichier LibUnwindStackTraceService.cc.


La documentation de cette classe a été générée à partir du fichier suivant :