]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/g-trasym.ads
Remove obsolete Tru64 UNIX V5.1B support
[thirdparty/gcc.git] / gcc / ada / g-trasym.ads
CommitLineData
83cce46b 1------------------------------------------------------------------------------
2-- --
3-- GNAT RUN-TIME COMPONENTS --
4-- --
5-- G N A T . T R A C E B A C K . S Y M B O L I C --
6-- --
7-- S p e c --
8-- --
126b6848 9-- Copyright (C) 1999-2012, AdaCore --
83cce46b 10-- --
11-- GNAT is free software; you can redistribute it and/or modify it under --
12-- terms of the GNU General Public License as published by the Free Soft- --
3ce44058 13-- ware Foundation; either version 3, or (at your option) any later ver- --
83cce46b 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
3ce44058 16-- or FITNESS FOR A PARTICULAR PURPOSE. --
17-- --
18-- As a special exception under Section 7 of GPL version 3, you are granted --
19-- additional permissions described in the GCC Runtime Library Exception, --
20-- version 3.1, as published by the Free Software Foundation. --
21-- --
22-- You should have received a copy of the GNU General Public License and --
23-- a copy of the GCC Runtime Library Exception along with this program; --
24-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
25-- <http://www.gnu.org/licenses/>. --
83cce46b 26-- --
9dfe12ae 27-- GNAT was originally developed by the GNAT team at New York University. --
28-- Extensive contributions were provided by Ada Core Technologies Inc. --
83cce46b 29-- --
30------------------------------------------------------------------------------
31
32-- Run-time symbolic traceback support
33
b2df433c 34-- The full capability is currently supported on the following targets:
11edcba1 35
b2df433c 36-- HP-UX ia64
eabcce03 37-- IRIX
4e06d1d1 38-- GNU/Linux x86, x86_64, ia64
b2df433c 39-- FreeBSD x86, x86_64
4e06d1d1 40-- Solaris sparc and x86
b2df433c 41-- OpenVMS Alpha and ia64
42-- Windows
83cce46b 43
3ab42ff7 44-- Note: on targets other than those listed above, a dummy implementation of
45-- the body returns a series of LF separated strings of the form "0x..."
46-- corresponding to the addresses.
47
83cce46b 48-- The routines provided in this package assume that your application has
49-- been compiled with debugging information turned on, since this information
50-- is used to build a symbolic traceback.
9dfe12ae 51
780ad7cd 52-- If you want to retrieve tracebacks from exception occurrences, it is also
53-- necessary to invoke the binder with -E switch. Please refer to the gnatbind
54-- documentation for more information.
55
56-- Note that it is also possible (and often recommended) to compute symbolic
57-- traceback outside the program execution, which in addition allows you
58-- to distribute the executable with no debug info:
59--
60-- - build your executable with debug info
61-- - archive this executable
62-- - strip a copy of the executable and distribute/deploy this version
63-- - at run time, compute absolute traceback (-bargs -E) from your
eabcce03 64-- executable and log it using Ada.Exceptions.Exception_Information
780ad7cd 65-- - off line, compute the symbolic traceback using the executable archived
66-- with debug info and addr2line or gdb (using info line *<addr>) on the
67-- absolute addresses logged by your application.
80d4fec4 68
f15731c4 69-- In order to retrieve symbolic information, functions in this package will
3670c51d 70-- read on disk all the debug information of the executable file (found via
eabcce03 71-- Argument (0), and looked in the PATH if needed), and load them in memory,
72-- causing a significant cpu and memory overhead.
9dfe12ae 73
e2aa7314 74-- On all platforms except VMS, this package is not intended to be used
75-- within a shared library, symbolic tracebacks are only supported for the
44d43e97 76-- main executable and not for shared libraries. You should consider using
77-- gdb to obtain symbolic traceback in such cases.
9dfe12ae 78
e2aa7314 79-- On VMS, there is no restriction on using this facility with shared
80-- libraries. However, the OS should be at least v7.3-1 and OS patch
81-- VMS731_TRACE-V0100 must be applied in order to use this package.
83cce46b 82
b2df433c 83-- On platforms where the full capability is not supported, function
84-- Symbolic_Traceback return a list of addresses expressed as "0x..."
85-- separated by line feed.
86
83cce46b 87with Ada.Exceptions; use Ada.Exceptions;
88
89package GNAT.Traceback.Symbolic is
1a1b0b9b 90 pragma Elaborate_Body;
83cce46b 91
83cce46b 92 function Symbolic_Traceback (Traceback : Tracebacks_Array) return String;
3ab42ff7 93 -- Build a string containing a symbolic traceback of the given call chain.
cbe48986 94 -- Note: This procedure may be installed by Set_Trace_Decorator, to get a
95 -- symbolic traceback on all exceptions raised (see GNAT.Exception_Traces).
83cce46b 96
97 function Symbolic_Traceback (E : Exception_Occurrence) return String;
9dfe12ae 98 -- Build string containing symbolic traceback of given exception occurrence
83cce46b 99
100end GNAT.Traceback.Symbolic;