# Package net.sf.saxon.trace

This package provides an interface to Saxon tracing and debugging capabilities.

The package was originally created by Edwin Glaser.

The package includes three tracing modules that can be optionally selected: `XSLTTraceListener`, `XQueryTraceListener`, and `TimedTraceListener`. These all receive notification of the same events, but select and format the events in different ways to meet different requirements. Other events are notified through the `TraceListener` interface that are ignored by tracing applications, but may be of interest to debuggers.

- Interface Summary
  Interface | Description
  --- | ---
  ExpressionPresenter.Options |
  InstructionInfo | Information about an instruction in the stylesheet or a construct in a Query, made available at run-time to a TraceListener.
  Traceable | A construct whose execution can be notified to a TraceListener.
  TraceableComponent | A construct whose execution can be notified to a TraceListener.

- Class Summary
  Class | Description
  --- | ---
  AbstractTraceListener | This is the standard trace listener used when the -T option is specified on the command line.
  ContextStackFrame | An entry on the context stack.
  ContextStackFrame.ApplyTemplates | Subclass of ContextStackFrame representing an xsl:apply-templates call in XSLT
  ContextStackFrame.BuiltInTemplateRule | Subclass of ContextStackFrame representing a built-in template rule in XSLT
  ContextStackFrame.CallingApplication | Subclass of ContextStackFrame representing the outermost stack frame, for the calling application
  ContextStackFrame.CallTemplate | Subclass of ContextStackFrame representing an xsl:call-template instruction in XSLT
  ContextStackFrame.FunctionCall | Subclass of ContextStackFrame representing a call to a user-defined function either in XSLT or XQuery
  ContextStackFrame.VariableEvaluation | Subclass of ContextStackFrame representing the evaluation of a variable (typically a global variable)
  ContextStackIterator | This class provides a representation of the current runtime call stack, as represented by the stack of XPathContext objects.
  CountingFilter | A filter that can be inserted into a Receiver pipeline to count the events that pass through.
  ExpressionPresenter | This class handles the display of an abstract expression tree in an XML format with some slight resemblance to XQueryX
  ExpressionPresenter.ExportOptions |
  Instrumentation | Internal class used for instrumentation purposes.
  ModeTraceListener | A trace listener for XSLT that only handles invocation of template rules; enabled using saxon:trace="yes" on the xsl:mode declaration
  TimingCodeInjector | A code injector that wraps the body of a template or function in a TraceExpression, which causes the TimingTraceListener to be notified at the start and end of the function/template evaluation
  TimingTraceListener | A trace listener that records timing information for templates and functions, outputting this information as an HTML report to a specified destination when the transformation completes.
  TraceCodeInjector | A code injector that wraps every expression (other than a literal) in a TraceExpression, which causes a TraceListener to be notified when the expression is evaluated
  TraceEventMulticaster | A class which implements efficient and thread-safe multi-cast event dispatching for the TraceListener evants.
  TracingFilter | A filter that can be inserted into a Receiver pipeline to trace the events that pass through.
  XQueryTraceCodeInjector | A code injector designed to support the -T tracing option in XQuery
  XQueryTraceListener | A Simple trace listener for XQuery that writes messages (by default) to System.err
  XSLTTraceCodeInjector | A code injector that wraps every expression (other than a literal) in a TraceExpression, which causes a TraceListener to be notified when the expression is evaluated
  XSLTTraceListener | A Simple trace listener for XSLT that writes messages (by default) to System.err