Package: GNAT.Exception_Traces

Dependencies

with GNAT.Traceback; use GNAT.Traceback;

Description

This package provides an interface allowing to control *automatic* output to standard error upon exception occurrences (as opposed to explicit generation of traceback information using GNAT.Traceback).

This output includes the basic information associated with the exception (name, message) as well as a backtrace of the call chain at the point where the exception occured. This backtrace is only output if the call chain information is available, depending if the binder switch dedicated to that purpose has been used or not.

The default backtrace is in the form of absolute code locations which may be converted to corresponding source locations using the addr2line utility or from within GDB. Please refer to GNAT.Traceback for information about what is necessary to be able to exploit thisg possibility.

The backtrace output can also be customized by way of a "decorator" which may return any string output in association with a provided call chain.

The following defines the exact situations in which raises will cause automatic output of trace information.

Header

package GNAT.Exception_Traces is
 

Type Summary

Trace_Kind
Traceback_Decorator

Other Items:

type Trace_Kind is
  (Every_Raise,
   --  Denotes the initial raise event for any exception occurrence, either
   --  explicit or due to a specific language rule, within the context of a
   --  task or not.

   Unhandled_Raise
   --  Denotes the raise events corresponding to exceptions for which there
   --  is no user defined handler, in particular, when a task dies due to an
   --  unhandled exception.
  );
The following procedures can be used to activate and deactivate traces identified by the above trace kind values.

procedure Trace_On (Kind : in Trace_Kind);
Activate the traces denoted by Kind.

procedure Trace_Off;
Stop the tracing requested by the last call to Trace_On. Has no effect if no such call has ever occurred.

type Traceback_Decorator is access
  function (Traceback : Tracebacks_Array) return String;
The following provide the backtrace decorating facilities A backtrace decorator is a function which returns the string to be output for a call chain provided by way of a tracebacks array.

procedure Set_Trace_Decorator (Decorator : Traceback_Decorator);
Set the decorator to be used for future automatic outputs. Restore the default behavior (output of raw addresses) if the provided access value is null.
end GNAT.Exception_Traces;