ATLAS Offline Software
Loading...
Searching...
No Matches
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
20
21// FrameWork includes
26#include "Gaudi/Property.h" /*BooleanProperty*/
27
28
48
49class PageAccessControlSvc : public extends<AthService, IPageAccessControlSvc> {
50public:
51
53 PageAccessControlSvc( const std::string& name, ISvcLocator* pSvcLocator ) ATLAS_NOT_THREAD_SAFE;
54
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
84private:
85 struct sigaction m_saveSEGVaction;
88 BooleanProperty m_autoMonitor;
89};
90
91
92#endif
This class provides a handle function that logs the addresses that had an access violation....
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
PageAccessControlSvc(const std::string &name, ISvcLocator *pSvcLocator) ATLAS_NOT_THREAD_SAFE
Standard GAUDI constructor.
struct sigaction m_saveSEGVaction
the default action for SIGSEGV
BooleanProperty m_autoMonitor
start on init, stop on finalize
virtual bool controlPage(const void *address)
virtual StatusCode initialize()
virtual void report() const
In baseline implementation, controlled via PageAccessControlSvc.OutputLevel.
virtual StatusCode finalize()
virtual bool accessed(const void *address) const
has this pointer been accessed (read/written)
virtual bool startMonitoring()
In baseline implementation, protect pages and install a SEGV handler that counts the number of access...
PageAccessControl m_accessControl
PtrAccessSEGVHandler m_SEGVHandler
virtual ~PageAccessControlSvc()
Destructor.
FIXME Access to the underlying protect/restore page access.