ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaServices
src
PageAccessControlSvc.h
Go to the documentation of this file.
1
// dear emacs, this is -*- C++ -*-
2
3
/*
4
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
#ifndef ATHENASERVICES_PAGEACCESSCONTROLSVC_H
8
#define ATHENASERVICES_PAGEACCESSCONTROLSVC_H
9
16
#include <signal.h>
/*sigaction*/
17
18
// Package includes
19
#include "
AthenaKernel/IPageAccessControlSvc.h
"
20
21
// FrameWork includes
22
#include "
AthenaBaseComps/AthService.h
"
23
#include "
CxxUtils/checker_macros.h
"
24
#include "
CxxUtils/PageAccessControl.h
"
25
#include "
CxxUtils/PtrAccessSEGVHandler.h
"
26
#include "Gaudi/Property.h"
/*BooleanProperty*/
27
28
48
49
class
PageAccessControlSvc
:
public
extends<AthService, IPageAccessControlSvc> {
50
public
:
51
53
PageAccessControlSvc
(
const
std::string& name, ISvcLocator* pSvcLocator )
ATLAS_NOT_THREAD_SAFE
;
54
56
virtual
~PageAccessControlSvc
() {}
57
59
60
62
virtual
bool
startMonitoring
();
63
virtual
bool
stopMonitoring
();
65
virtual
bool
accessed
(
const
void
* address)
const
;
67
virtual
void
report
()
const
;
70
virtual
bool
controlPage
(
const
void
* address) {
71
return
m_accessControl
.forbidPage(address);
72
}
73
74
75
77
78
virtual
StatusCode
initialize
();
79
virtual
StatusCode
finalize
();
80
82
83
84
private
:
85
struct
sigaction
m_saveSEGVaction
;
86
PageAccessControl
m_accessControl
;
87
PtrAccessSEGVHandler
m_SEGVHandler
;
88
BooleanProperty
m_autoMonitor
;
89
};
90
91
92
#endif
AthService.h
IPageAccessControlSvc.h
PageAccessControl.h
PtrAccessSEGVHandler.h
This class provides a handle function that logs the addresses that had an access violation....
checker_macros.h
Define macros for attributes used to control the static checker.
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition
checker_macros.h:212
PageAccessControlSvc::PageAccessControlSvc
PageAccessControlSvc(const std::string &name, ISvcLocator *pSvcLocator) ATLAS_NOT_THREAD_SAFE
Standard GAUDI constructor.
Definition
PageAccessControlSvc.cxx:8
PageAccessControlSvc::m_saveSEGVaction
struct sigaction m_saveSEGVaction
the default action for SIGSEGV
Definition
PageAccessControlSvc.h:85
PageAccessControlSvc::m_autoMonitor
BooleanProperty m_autoMonitor
start on init, stop on finalize
Definition
PageAccessControlSvc.h:88
PageAccessControlSvc::controlPage
virtual bool controlPage(const void *address)
Definition
PageAccessControlSvc.h:70
PageAccessControlSvc::stopMonitoring
virtual bool stopMonitoring()
Definition
PageAccessControlSvc.cxx:31
PageAccessControlSvc::initialize
virtual StatusCode initialize()
Definition
PageAccessControlSvc.cxx:40
PageAccessControlSvc::report
virtual void report() const
In baseline implementation, controlled via PageAccessControlSvc.OutputLevel.
Definition
PageAccessControlSvc.cxx:56
PageAccessControlSvc::finalize
virtual StatusCode finalize()
Definition
PageAccessControlSvc.cxx:47
PageAccessControlSvc::accessed
virtual bool accessed(const void *address) const
has this pointer been accessed (read/written)
Definition
PageAccessControlSvc.cxx:36
PageAccessControlSvc::startMonitoring
virtual bool startMonitoring()
In baseline implementation, protect pages and install a SEGV handler that counts the number of access...
Definition
PageAccessControlSvc.cxx:19
PageAccessControlSvc::m_accessControl
PageAccessControl m_accessControl
Definition
PageAccessControlSvc.h:86
PageAccessControlSvc::m_SEGVHandler
PtrAccessSEGVHandler m_SEGVHandler
Definition
PageAccessControlSvc.h:87
PageAccessControlSvc::~PageAccessControlSvc
virtual ~PageAccessControlSvc()
Destructor.
Definition
PageAccessControlSvc.h:56
PageAccessControl
FIXME Access to the underlying protect/restore page access.
PtrAccessSEGVHandler
Definition
PtrAccessSEGVHandler.h:28
Generated on
for ATLAS Offline Software by
1.17.0