Service de trace des appels de fonctions utilisant la libunwind. Plus de détails...
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 IServiceInfo * | serviceInfo () const |
Accès aux informations du service. | |
virtual IBase * | serviceParent () const |
Accès à l'interface de base des principaux objets Arcane. | |
virtual IService * | serviceInterface () |
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. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () 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 |
IApplication * | m_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. | |
Service de trace des appels de fonctions utilisant la libunwind.
Définition à la ligne 54 du fichier LibUnwindStackTraceService.cc.
|
private |
Définition à la ligne 104 du fichier LibUnwindStackTraceService.cc.
|
inline |
Définition à la ligne 80 du fichier LibUnwindStackTraceService.cc.
|
private |
Pile d'appel via la fonction backtrace.
Définition à la ligne 333 du fichier LibUnwindStackTraceService.cc.
Référencé par stackTrace().
|
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().
|
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().
|
private |
Définition à la ligne 122 du fichier LibUnwindStackTraceService.cc.
|
private |
Récupère le nom de la fonction via dladdr.
Définition à la ligne 171 du fichier LibUnwindStackTraceService.cc.
|
private |
Définition à la ligne 212 du fichier LibUnwindStackTraceService.cc.
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.
|
overridevirtual |
Chaîne de caractère indiquant la pile d'appel.
Implémente Arccore::IStackTraceService.
Définition à la ligne 235 du fichier LibUnwindStackTraceService.cc.
Références _backtraceStackFrame(), _backtraceStackTrace(), _generateFileAndOffset(), Arcane::platform::getSymbolizerService(), et Arcane::ISymbolizerService::stackTrace().
|
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().
|
private |
Définition à la ligne 110 du fichier LibUnwindStackTraceService.cc.
|
private |
Définition à la ligne 105 du fichier LibUnwindStackTraceService.cc.
|
private |
Définition à la ligne 106 du fichier LibUnwindStackTraceService.cc.
|
private |
Définition à la ligne 109 du fichier LibUnwindStackTraceService.cc.
|
private |
Définition à la ligne 108 du fichier LibUnwindStackTraceService.cc.