frysk.ftrace
Class Ftrace

java.lang.Object
  extended by frysk.ftrace.Ftrace

public class Ftrace
extends Object


Nested Class Summary
static interface Ftrace.Controller
          Controller has to be implemented externally.
static interface Ftrace.Driver
          An object implementing this interface is handed over to allow external controller to aid which tracepoints should be traced.
(package private)  class Ftrace.ForkCloneObserverBase
           
(package private)  class Ftrace.MyAttachedObserver
          An observer that sets up things once frysk has set up the requested proc and attached to it.
(package private)  class Ftrace.MyClonedObserver
           
(package private)  class Ftrace.MyForkedObserver
           
(package private)  class Ftrace.MyMappingObserver
           
(package private)  class Ftrace.MySignaledObserver
           
private  class Ftrace.MySyscallObserver
          The syscallObserver added to the traced proc.
(package private)  class Ftrace.MyTerminatingObserver
           
private  class Ftrace.ProcRemovedObserver
          An observer to stop the eventloop when the traced process exits.
static interface Ftrace.StackTracedSymbolsProvider
          External entity implementing this interface is called out each time an entry point is hit.
(package private)  class Ftrace.TaskObservations
           
static interface Ftrace.TracedSignalProvider
          External entity implementing this interface is called out for each new process, and should construct set of signals to trace and stack trace on.
static interface Ftrace.TracedSyscallProvider
          External entity implementing this interface is called out for each new process, and should construct set of syscalls to trace and stack trace on.
 
Field Summary
(package private)  Ftrace.MyAttachedObserver attachedObserver
           
(package private)  TaskObserver.Cloned clonedObserver
           
private  HashMap driversForTask
          Remembers working set preferences for each task.
private static Log fine
           
private static Log finest
           
(package private)  TaskObserver.Forked forkedObserver
           
(package private)  Ftrace.Controller ftraceController
           
private  int numProcesses
           
private  HashMap observationCounters
           
(package private)  Reporter reporter
           
private  boolean showPC
           
private  HashMap signalSetForTask
          Remembers traced signal set for each task.
private  PrintDebugInfoStackOptions stackPrintOptions
           
(package private)  Ftrace.StackTracedSymbolsProvider stackTraceSetProvider
           
(package private) static SteppingEngine steppingEngine
           
private  HashMap syscallSetForTask
          Remembers traced syscall set for each task.
private  ProcTasksObserver tasksObserver
           
private  boolean traceChildren
           
(package private)  Ftrace.TracedSignalProvider tracedSignalProvider
           
(package private)  Ftrace.TracedSyscallProvider tracedSyscallProvider
           
private  boolean traceMmapUnmap
           
private static Log warning
           
 
Constructor Summary
Ftrace(PrintDebugInfoStackOptions stackPrintOptions)
           
 
Method Summary
 void addProc(Proc proc)
           
(package private)  void handleTask(Task task)
           
private  void init()
           
private  void noMoreObservations(Task task)
           
private  void observationRealized(Task task, String what)
           
private  void observationRequested(Task task, String what)
           
 void setShowPC(boolean show)
           
 void setTraceChildren()
           
 void setTraceFunctions(Ftrace.Controller ftraceController, Ftrace.StackTracedSymbolsProvider stackTraceSetProvider)
           
 void setTraceMmaps()
           
 void setTraceSignals(Ftrace.TracedSignalProvider tracedSignalProvider)
           
 void setTraceSyscalls(Ftrace.TracedSyscallProvider tracedSyscallProvider)
           
 void setWriter(PrintWriter writer)
           
 void trace()
           
 void trace(Proc command)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fine

private static final Log fine

finest

private static final Log finest

warning

private static final Log warning

stackPrintOptions

private final PrintDebugInfoStackOptions stackPrintOptions

steppingEngine

static final SteppingEngine steppingEngine

reporter

Reporter reporter

traceChildren

private boolean traceChildren

traceMmapUnmap

private boolean traceMmapUnmap

numProcesses

private int numProcesses

showPC

private boolean showPC

ftraceController

Ftrace.Controller ftraceController

stackTraceSetProvider

Ftrace.StackTracedSymbolsProvider stackTraceSetProvider

tracedSyscallProvider

Ftrace.TracedSyscallProvider tracedSyscallProvider

tracedSignalProvider

Ftrace.TracedSignalProvider tracedSignalProvider

observationCounters

private HashMap observationCounters

driversForTask

private final HashMap driversForTask
Remembers working set preferences for each task. Map<Task, Driver>


syscallSetForTask

private final HashMap syscallSetForTask
Remembers traced syscall set for each task. Map<Task, Map<Syscall, Boolean>>


signalSetForTask

private final HashMap signalSetForTask
Remembers traced signal set for each task. Map<Task, Map<String, Boolean>>


tasksObserver

private ProcTasksObserver tasksObserver

attachedObserver

Ftrace.MyAttachedObserver attachedObserver

forkedObserver

TaskObserver.Forked forkedObserver

clonedObserver

TaskObserver.Cloned clonedObserver
Constructor Detail

Ftrace

public Ftrace(PrintDebugInfoStackOptions stackPrintOptions)
Method Detail

setTraceChildren

public void setTraceChildren()

setTraceSyscalls

public void setTraceSyscalls(Ftrace.TracedSyscallProvider tracedSyscallProvider)

setTraceSignals

public void setTraceSignals(Ftrace.TracedSignalProvider tracedSignalProvider)

setTraceMmaps

public void setTraceMmaps()

setTraceFunctions

public void setTraceFunctions(Ftrace.Controller ftraceController,
                              Ftrace.StackTracedSymbolsProvider stackTraceSetProvider)

setShowPC

public void setShowPC(boolean show)

setWriter

public void setWriter(PrintWriter writer)

init

private void init()

addProc

public void addProc(Proc proc)

trace

public void trace(Proc command)

trace

public void trace()

observationRequested

private void observationRequested(Task task,
                                  String what)

observationRealized

private void observationRealized(Task task,
                                 String what)

noMoreObservations

private void noMoreObservations(Task task)

handleTask

void handleTask(Task task)