# Package net.sf.saxon.trace

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

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  InstructionInfo | Information about an instruction in the stylesheet or a construct in a Query, made available at run-time 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.
  ExpressionPresenter | This class handles the display of an abstract expression tree in an XML format with some slight resemblence to XQueryX
  Location | This class holds constants identifying different kinds of location in a source stylesheet or query.
  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.
  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

## Package net.sf.saxon.trace Description

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.

Michael H. Kay
Saxonica Limited
9 February 2005

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.