Geant4.10
|
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <iostream>
#include <sys/types.h>
#include <sys/syscall.h>
#include <sys/ptrace.h>
#include <sys/wait.h>
#include <unistd.h>
#include <errno.h>
#include <sys/user.h>
#include <assert.h>
#include <sys/select.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <pthread.h>
#include "tls.hh"
#include "memoryprotection/filter.h"
#include "memoryprotection/UDSignals.h"
#include "memoryprotection/MemorySegment.h"
Go to the source code of this file.
Macros | |
#define | MAXTHREADS 128 |
Functions | |
void | FetchMap (pid_t pid) |
char * | getLibName (long int address) |
void | processParameters (int, char *argv[]) |
void | test (pid_t pid, int wait_val) |
int | SingleSteps (pid_t pid) |
int | traceloop (pid_t pid) |
void * | tracer_thread (void *pid_ptr) |
void | startThreadTracers (pid_t pid) |
void | waitForAllTracers (pid_t pid) |
void | openFilter () |
void | closeFilter () |
int | main (int argc, char *argv[]) |
Variables | |
int | fildes [2] |
int | status |
char | cmd [1024] |
int | protect = 0 |
pid_t | filter |
int | numberOfThreads |
pid_t | threads [MAXTHREADS] |
pthread_t | tids [MAXTHREADS] |
G4ThreadLocal struct user_regs_struct | regs |
G4ThreadLocal struct user_regs_struct | regssinglestep |
G4ThreadLocal int | detectionFlag = 0 |
pthread_mutex_t | segFaultHandlingLock = PTHREAD_MUTEX_INITIALIZER |
#define MAXTHREADS 128 |
Definition at line 28 of file tracer.cxx.
void closeFilter | ( | ) |
void FetchMap | ( | pid_t | pid | ) |
Definition at line 70 of file tracer.cxx.
References test::fname.
Referenced by startThreadTracers().
char* getLibName | ( | long int | address | ) |
Definition at line 115 of file tracer.cxx.
Referenced by traceloop().
Definition at line 491 of file tracer.cxx.
References closeFilter(), openFilter(), processParameters(), startThreadTracers(), threads, traceloop(), and waitForAllTracers().
void openFilter | ( | ) |
Definition at line 436 of file tracer.cxx.
References cmd, fildes, filter, generategdbscripts(), insertAddress(), outputAddresses(), and status.
Referenced by main().
Definition at line 126 of file tracer.cxx.
References cmd, numberOfThreads, and threads.
Referenced by main().
int SingleSteps | ( | pid_t | pid | ) |
Definition at line 193 of file tracer.cxx.
References assert, fildes, regssinglestep, and test().
Referenced by traceloop().
void startThreadTracers | ( | pid_t | pid | ) |
Definition at line 414 of file tracer.cxx.
References assert, FetchMap(), numberOfThreads, threads, tids, and tracer_thread().
Referenced by main().
int traceloop | ( | pid_t | pid | ) |
Definition at line 236 of file tracer.cxx.
References assert, cmd, detectionFlag, fildes, getLibName(), protect, regssinglestep, segFaultHandlingLock, SingleSteps(), and test().
Referenced by main(), and tracer_thread().
Definition at line 404 of file tracer.cxx.
References traceloop().
Referenced by startThreadTracers().
void waitForAllTracers | ( | pid_t | pid | ) |
Definition at line 425 of file tracer.cxx.
References assert, numberOfThreads, threads, and tids.
Referenced by main().
char cmd[1024] |
Definition at line 25 of file tracer.cxx.
Referenced by G4FileUtilities::CopyFile(), G4UIcommandTree::CreateHTML(), G4GenericMessenger::DeclareMethod(), G4GenericMessenger::DeclareMethodWithUnit(), G4GenericMessenger::DeclareProperty(), G4GenericMessenger::DeclarePropertyWithUnit(), G4FileUtilities::DeleteFile(), CexmcRunManager::DoEventLoop(), G4VMPIsession::ExecCommand(), G4ModelCmdAddInterval< M >::G4ModelCmdAddInterval(), G4ModelCmdAddIntervalContext< M >::G4ModelCmdAddIntervalContext(), G4ModelCmdAddValue< M >::G4ModelCmdAddValue(), G4ModelCmdAddValueContext< M >::G4ModelCmdAddValueContext(), G4ModelCmdSetAuxPtsFillStyle< M >::G4ModelCmdSetAuxPtsFillStyle(), G4ModelCmdSetAuxPtsSizeType< M >::G4ModelCmdSetAuxPtsSizeType(), G4ModelCmdSetAuxPtsType< M >::G4ModelCmdSetAuxPtsType(), G4ModelCmdSetStepPtsFillStyle< M >::G4ModelCmdSetStepPtsFillStyle(), G4ModelCmdSetStepPtsSizeType< M >::G4ModelCmdSetStepPtsSizeType(), G4ModelCmdSetStepPtsType< M >::G4ModelCmdSetStepPtsType(), G4ModelCmdSetTimeSliceInterval< M >::G4ModelCmdSetTimeSliceInterval(), G4PersistencyCenterMessenger::G4PersistencyCenterMessenger(), openFilter(), processParameters(), CexmcRunManager::SetupConstructionHook(), and traceloop().
G4ThreadLocal int detectionFlag = 0 |
Definition at line 64 of file tracer.cxx.
Referenced by traceloop().
int fildes[2] |
Definition at line 23 of file tracer.cxx.
Referenced by closeFilter(), openFilter(), SingleSteps(), and traceloop().
pid_t filter |
Definition at line 30 of file tracer.cxx.
Referenced by G4AttributeFilterT< T >::Clear(), closeFilter(), G4AttributeFilterT< T >::Evaluate(), G4ScoreQuantityMessenger::FParticleWithEnergyCommand(), G4AttFilterUtils::GetNewFilter(), openFilter(), G4AttributeFilterT< T >::Print(), G4PropagatorInField::SetTrajectoryFilter(), and G4AttributeFilterT< T >::~G4AttributeFilterT().
int numberOfThreads |
Definition at line 32 of file tracer.cxx.
Referenced by processParameters(), startThreadTracers(), and waitForAllTracers().
int protect = 0 |
Definition at line 26 of file tracer.cxx.
Referenced by traceloop().
G4ThreadLocal struct user_regs_struct regs |
Definition at line 62 of file tracer.cxx.
Referenced by ExTGRCRegionCutsMgr::AddRegionCuts(), and ExTGRCRegionCutsMgr::FindRegionData().
G4ThreadLocal struct user_regs_struct regssinglestep |
Definition at line 63 of file tracer.cxx.
Referenced by SingleSteps(), and traceloop().
pthread_mutex_t segFaultHandlingLock = PTHREAD_MUTEX_INITIALIZER |
Definition at line 66 of file tracer.cxx.
Referenced by traceloop().
int status |
Definition at line 24 of file tracer.cxx.
Referenced by CCalStackingAction::ClassifyNewTrack(), deflateEnd(), dminit(), G4FRofstream::DoesFileExist(), dpmjet(), filenu(), G4GIDI::freeTarget(), g4dpmjet_open_fort6(), g4dpmjet_open_nuclear_bin(), RE01Trajectory::GetAttDefs(), G4Pythia6Decayer::ImportDecayProducts(), openFilter(), phocin(), phoerr(), phorep(), G4HadronElasticProcess::PostStepDoIt(), prblm2(), readffky(), smr_setMessageError(), smr_setMessageInfo(), smr_vsetMessageError(), smr_vsetMessageInfo(), tpia_angular_SampleMu(), tpia_angularEnergy_getFromElement(), tpia_frame_setFromString(), tpia_Legendre_getFromElement(), tpia_map_findAllOfTarget(), tpia_misc_setMessageError_Element(), tpia_product_getDecayChannelFromElement(), and tpia_target_read().
pid_t threads[MAXTHREADS] |
Definition at line 33 of file tracer.cxx.
Referenced by main(), processParameters(), startThreadTracers(), and waitForAllTracers().
pthread_t tids[MAXTHREADS] |
Definition at line 34 of file tracer.cxx.
Referenced by startThreadTracers(), and waitForAllTracers().