Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ValgrindSvc.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // ValgrindSvc.h
8 // Header file for class ValgrindSvc
9 // Author: S.Binet<binet@cern.ch>
11 #ifndef ATHENASERVICES_VALGRINDSVC_H
12 #define ATHENASERVICES_VALGRINDSVC_H 1
13 
14 // STL includes
15 #include <string>
16 #include <iosfwd>
17 
18 // FrameWork includes
20 #include "GaudiKernel/IIncidentListener.h"
21 
22 // AthenaKernel includes
24 
25 // Forward declaration
26 class ISvcLocator;
27 class IAuditorSvc;
28 
29 class ValgrindSvc : public extends<AthService,
30  IValgrindSvc,
31  IIncidentListener>
32 {
34  // Public methods:
36  public:
37 
39  ValgrindSvc( const std::string& name, ISvcLocator* pSvcLocator );
40 
42  virtual ~ValgrindSvc();
43 
45 
46  virtual StatusCode initialize() override;
47  virtual StatusCode finalize() override;
49 
51  virtual void handle( const Incident& incident ) override;
52 
54  virtual void callgrindStartInstrumentation() override;
55 
57  virtual void callgrindStopInstrumentation() override;
58 
60  virtual void callgrindDumpStats( std::ostream& out ) override;
61 
63  virtual void callgrindToggleCollect() override;
64 
66  virtual void valgrindDoLeakCheck() override;
67 
69  virtual unsigned int profileCount() override { return m_profileCounter; }
70 
72  // Private methods:
74  private:
75 
78  StatusCode makeAuditor (const std::string& audName, IAuditorSvc* audSvc);
79 
80 
82  // Private data:
84  private:
85 
88  std::vector<std::string> m_algs;
89 
92  std::vector<std::string> m_intervals;
93 
96 
99 
101  unsigned int m_ignoreFirstNEvents;
102 
104  std::vector<std::string> m_dumpAfterIncident;
105 
107  unsigned int m_eventCounter;
108 
110  unsigned int m_profileCounter;
111 };
112 
113 #endif //> ATHENASERVICES_VALGRINDSVC_H
ValgrindSvc::m_dumpAfterIncident
std::vector< std::string > m_dumpAfterIncident
List of incidents on which to create a profile dump.
Definition: ValgrindSvc.h:104
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
ValgrindSvc::m_eventCounter
unsigned int m_eventCounter
Internal event counter for BeginEvent incident.
Definition: ValgrindSvc.h:107
ValgrindSvc::handle
virtual void handle(const Incident &incident) override
incident service handle for Begin/EndEvent
Definition: ValgrindSvc.cxx:128
ValgrindSvc::callgrindToggleCollect
virtual void callgrindToggleCollect() override
Toggle callgrind event collection.
Definition: ValgrindSvc.cxx:189
ValgrindSvc
Definition: ValgrindSvc.h:32
ValgrindSvc::m_intervals
std::vector< std::string > m_intervals
List of auditor intervals to profile Syntax: "MessageSvc.initialize:MessageSvc.finalize".
Definition: ValgrindSvc.h:92
ValgrindSvc::makeAuditor
StatusCode makeAuditor(const std::string &audName, IAuditorSvc *audSvc)
helper method to create auditors
Definition: ValgrindSvc.cxx:208
IValgrindSvc.h
ValgrindSvc::m_dumpAfterEachInterval
bool m_dumpAfterEachInterval
Dump separate profile after each interval.
Definition: ValgrindSvc.h:98
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ValgrindSvc::m_ignoreFirstNEvents
unsigned int m_ignoreFirstNEvents
Don't profile on the first N events.
Definition: ValgrindSvc.h:101
ValgrindSvc::valgrindDoLeakCheck
virtual void valgrindDoLeakCheck() override
Do a leak check now.
Definition: ValgrindSvc.cxx:200
ValgrindSvc::m_dumpAfterEachEvent
bool m_dumpAfterEachEvent
Dump separate profile after each event.
Definition: ValgrindSvc.h:95
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ValgrindSvc::callgrindStartInstrumentation
virtual void callgrindStartInstrumentation() override
Start callgrind instrumentation.
Definition: ValgrindSvc.cxx:179
ValgrindSvc::m_algs
std::vector< std::string > m_algs
List of algorithms to profile If list is empty, profile between begin/end event.
Definition: ValgrindSvc.h:88
ValgrindSvc::m_profileCounter
unsigned int m_profileCounter
Counter of created profiles.
Definition: ValgrindSvc.h:110
ValgrindSvc::ValgrindSvc
ValgrindSvc(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Definition: ValgrindSvc.cxx:35
ValgrindSvc::~ValgrindSvc
virtual ~ValgrindSvc()
Destructor:
Definition: ValgrindSvc.cxx:65
ValgrindSvc::initialize
virtual StatusCode initialize() override
Gaudi Service Implementation.
Definition: ValgrindSvc.cxx:70
AthService.h
ValgrindSvc::callgrindStopInstrumentation
virtual void callgrindStopInstrumentation() override
Stop callgrind instrumentation.
Definition: ValgrindSvc.cxx:184
ValgrindSvc::finalize
virtual StatusCode finalize() override
Definition: ValgrindSvc.cxx:114
ValgrindSvc::callgrindDumpStats
virtual void callgrindDumpStats(std::ostream &out) override
Dump callgrind profiling stats.
Definition: ValgrindSvc.cxx:194
ValgrindSvc::profileCount
virtual unsigned int profileCount() override
Number of created callgrind profiles.
Definition: ValgrindSvc.h:69