ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaAuditors
src
FPEAuditor.h
Go to the documentation of this file.
1
2
3
/*
4
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// FPEAuditor.h
8
// Header file for class FPEAuditor
9
// Author: S.Binet<binet@cern.ch>
11
#ifndef ATHENASERVICES_FPEAUDITOR_H
12
#define ATHENASERVICES_FPEAUDITOR_H 1
13
14
// STL includes
15
#include <string>
16
#include <list>
17
#include <utility>
// for std::pair
18
#include <atomic>
19
20
// FrameWork includes
21
#include "Gaudi/Auditor.h"
22
#include "
AthenaBaseComps/AthCommonMsg.h
"
23
#include "
AthenaBaseComps/AthMsgStreamMacros.h
"
24
25
26
#include <signal.h>
27
#include <fenv.h>
28
29
// Forward declaration
30
class
INamedInterface;
31
32
33
class
FPEAuditor
:
public
AthCommonMsg
<Gaudi::Auditor>
34
{
36
// Public methods:
38
public
:
39
41
FPEAuditor
(
const
std::string& name, ISvcLocator* pSvcLocator);
42
44
virtual
~FPEAuditor
();
45
47
virtual
StatusCode
initialize
()
override
;
48
49
virtual
StatusCode
finalize
()
override
;
50
52
virtual
void
before
(
const
std::string& event,
const
std::string& name,
53
const
EventContext& ctx)
override
;
54
55
virtual
void
after
(
const
std::string& event,
const
std::string& name,
56
const
EventContext& ctx,
const
StatusCode&
sc
)
override
;
57
59
// Private data:
61
private
:
62
65
void
report_fpe
(
const
std::string& step,
const
std::string& caller,
const
EventContext& ctx);
66
69
void
add_fpe_node
();
70
73
void
pop_fpe_node
();
74
75
enum
{
FPEAUDITOR_OVERFLOW
=0,
FPEAUDITOR_INVALID
=1,
FPEAUDITOR_DIVBYZERO
=2,
FPEAUDITOR_ARRAYSIZE
=3 };
76
77
std::atomic<unsigned int>
m_CountFPEs
[
FPEAUDITOR_ARRAYSIZE
];
78
79
unsigned
int
m_NstacktracesOnFPE
=0;
80
81
unsigned
int
m_Nstacklines
=100;
82
83
void
InstallHandler
();
84
85
void
UninstallHandler
();
86
87
//fexcept_t m_flagp;
88
90
fenv_t
m_env
;
91
92
std::atomic<int>
m_nexceptions
;
93
};
94
95
// I/O operators
97
99
// Inline methods:
101
102
#endif
//> ATHENASERVICES_FPEAUDITOR_H
AthCommonMsg.h
Templated class that provides backwards compatibility for legacy MsgService manipulation methods.
AthMsgStreamMacros.h
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
AthCommonMsg
Definition
AthCommonMsg.h:19
FPEAuditor::m_nexceptions
std::atomic< int > m_nexceptions
Definition
FPEAuditor.h:92
FPEAuditor::m_NstacktracesOnFPE
unsigned int m_NstacktracesOnFPE
Definition
FPEAuditor.h:79
FPEAuditor::FPEAUDITOR_INVALID
@ FPEAUDITOR_INVALID
Definition
FPEAuditor.h:75
FPEAuditor::FPEAUDITOR_ARRAYSIZE
@ FPEAUDITOR_ARRAYSIZE
Definition
FPEAuditor.h:75
FPEAuditor::FPEAUDITOR_DIVBYZERO
@ FPEAUDITOR_DIVBYZERO
Definition
FPEAuditor.h:75
FPEAuditor::FPEAUDITOR_OVERFLOW
@ FPEAUDITOR_OVERFLOW
Definition
FPEAuditor.h:75
FPEAuditor::m_CountFPEs
std::atomic< unsigned int > m_CountFPEs[FPEAUDITOR_ARRAYSIZE]
Definition
FPEAuditor.h:77
FPEAuditor::finalize
virtual StatusCode finalize() override
Definition
FPEAuditor.cxx:98
FPEAuditor::after
virtual void after(const std::string &event, const std::string &name, const EventContext &ctx, const StatusCode &sc) override
Definition
FPEAuditor.cxx:176
FPEAuditor::InstallHandler
void InstallHandler()
Definition
FPEAuditor.cxx:114
FPEAuditor::FPEAuditor
FPEAuditor(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
FPEAuditor.cxx:60
FPEAuditor::before
virtual void before(const std::string &event, const std::string &name, const EventContext &ctx) override
Auditor hooks.
Definition
FPEAuditor.cxx:160
FPEAuditor::~FPEAuditor
virtual ~FPEAuditor()
Destructor.
Definition
FPEAuditor.cxx:81
FPEAuditor::add_fpe_node
void add_fpe_node()
add an fpe node
Definition
FPEAuditor.cxx:276
FPEAuditor::m_env
fenv_t m_env
The FP environment before we initialize.
Definition
FPEAuditor.h:90
FPEAuditor::initialize
virtual StatusCode initialize() override
Gaudi hooks.
Definition
FPEAuditor.cxx:86
FPEAuditor::report_fpe
void report_fpe(const std::string &step, const std::string &caller, const EventContext &ctx)
report fpes which happened during step 'step' on behalf of 'caller'
Definition
FPEAuditor.cxx:196
FPEAuditor::UninstallHandler
void UninstallHandler()
Definition
FPEAuditor.cxx:147
FPEAuditor::m_Nstacklines
unsigned int m_Nstacklines
Definition
FPEAuditor.h:81
FPEAuditor::pop_fpe_node
void pop_fpe_node()
pop an fpe node
Definition
FPEAuditor.cxx:293
Generated on
for ATLAS Offline Software by
1.17.0