![]() |
ATLAS Offline Software
|
Service to print additional information before a crash. More...
#include <CoreDumpSvc.h>
Classes | |
struct | sysDumpRec |
Public Member Functions | |
CoreDumpSvc (const std::string &name, ISvcLocator *pSvcLocator) ATLAS_CTORDTOR_NOT_THREAD_SAFE | |
Constructor with parameters. More... | |
virtual | ~CoreDumpSvc () ATLAS_CTORDTOR_NOT_THREAD_SAFE |
Destructor. More... | |
ICoreDumpSvc implementation | |
virtual void | setCoreDumpInfo (const std::string &name, const std::string &value) override |
Set a name/value pair in the core dump record. More... | |
virtual void | setCoreDumpInfo (const EventContext &ctx, const std::string &name, const std::string &value) override |
Set a name/value pair in the core dump record for given EventContext. More... | |
virtual std::string | dump () const override |
Print all core dump records. More... | |
Protected Member Functions | |
CoreDumpSvc () | |
Default constructor (do not use) More... | |
Private Member Functions | |
void propertyHandler | ATLAS_NOT_THREAD_SAFE (Gaudi::Details::PropertyBase &p) |
Property handler. More... | |
void print | ATLAS_NOT_THREAD_SAFE () |
Print core dump records to configured stream. More... | |
void | setSigInfo (siginfo_t *info) |
Set pointer to siginfo_t struct. More... | |
StatusCode installSignalHandler | ATLAS_NOT_THREAD_SAFE () |
Install signal handlers. More... | |
StatusCode uninstallSignalHandler | ATLAS_NOT_THREAD_SAFE () |
Uninstall signal handlers. More... | |
void | setAltStack () |
Set up an alternate stack for the current thread. More... | |
Friends | |
void | CoreDumpSvcHandler::action (int sig, siginfo_t *info, void *extra) |
Gaudi implementation | |
typedef tbb::concurrent_unordered_map< std::string, std::string > | UserCore_t |
std::vector< UserCore_t > | m_usrCoreDumps |
User defined core dump info. More... | |
std::vector< sysDumpRec > | m_sysCoreDumps |
Core dump info collected by this service More... | |
siginfo_t * | m_siginfo {nullptr} |
Pointer to siginfo_t struct (set by signal handler) More... | |
std::atomic< EventID::event_number_t > | m_eventCounter {0} |
Event counter. More... | |
Gaudi::Property< std::vector< int > > | m_signals |
Alternate stack for signal handler. More... | |
Gaudi::Property< bool > | m_callOldHandler |
Gaudi::Property< bool > | m_dumpCoreFile |
Gaudi::Property< bool > | m_stackTrace |
Gaudi::Property< bool > | m_fastStackTrace |
Gaudi::Property< std::string > | m_coreDumpStream |
Gaudi::Property< int > | m_fatalHandlerFlags |
Gaudi::Property< double > | m_timeout |
Gaudi::Property< bool > | m_killOnSigInt {this, "KillOnSigInt",true, "Terminate job on SIGINT (aka Ctrl-C)"} |
static thread_local std::vector< uint8_t > | s_stack |
virtual StatusCode initialize | ATLAS_NOT_THREAD_SAFE () override |
virtual StatusCode | start () override |
virtual StatusCode finalize | ATLAS_NOT_THREAD_SAFE () override |
virtual void | handle (const Incident &incident) override |
Incident listener. More... | |
Service to print additional information before a crash.
This service will catch fatal signals and print its internal core dump record. The service collects some information during event processing. Additional information can be added via setCoreDumpInfo().
For a list of job option properties see CoreDumpSvc::CoreDumpSvc().
Definition at line 41 of file CoreDumpSvc.h.
|
private |
Definition at line 88 of file CoreDumpSvc.h.
|
protected |
Default constructor (do not use)
CoreDumpSvc::CoreDumpSvc | ( | const std::string & | name, |
ISvcLocator * | pSvcLocator | ||
) |
|
virtual |
Destructor.
Definition at line 254 of file CoreDumpSvc.cxx.
|
private |
Print core dump records to configured stream.
|
private |
Install signal handlers.
|
private |
Uninstall signal handlers.
|
overridevirtual |
|
overridevirtual |
|
private |
Property handler.
|
overridevirtual |
Print all core dump records.
Definition at line 392 of file CoreDumpSvc.cxx.
|
overridevirtual |
|
private |
|
overridevirtual |
Set a name/value pair in the core dump record for given EventContext.
Definition at line 369 of file CoreDumpSvc.cxx.
|
overridevirtual |
Set a name/value pair in the core dump record.
Definition at line 364 of file CoreDumpSvc.cxx.
|
inlineprivate |
Set pointer to siginfo_t struct.
Definition at line 136 of file CoreDumpSvc.h.
|
overridevirtual |
Definition at line 337 of file CoreDumpSvc.cxx.
|
friend |
|
private |
Definition at line 101 of file CoreDumpSvc.h.
|
private |
Definition at line 113 of file CoreDumpSvc.h.
|
private |
Definition at line 104 of file CoreDumpSvc.h.
|
private |
Event counter.
Definition at line 92 of file CoreDumpSvc.h.
|
private |
Definition at line 110 of file CoreDumpSvc.h.
|
private |
Definition at line 116 of file CoreDumpSvc.h.
|
private |
Definition at line 124 of file CoreDumpSvc.h.
|
private |
Pointer to siginfo_t struct (set by signal handler)
Definition at line 91 of file CoreDumpSvc.h.
|
private |
Alternate stack for signal handler.
Properties
Definition at line 98 of file CoreDumpSvc.h.
|
private |
Definition at line 107 of file CoreDumpSvc.h.
|
private |
Core dump info collected by this service
Definition at line 90 of file CoreDumpSvc.h.
|
private |
Definition at line 120 of file CoreDumpSvc.h.
|
private |
User defined core dump info.
Definition at line 89 of file CoreDumpSvc.h.
|
staticprivate |
Definition at line 94 of file CoreDumpSvc.h.