1------------------------------------------------------------------------------ 2-- -- 3-- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS -- 4-- -- 5-- S Y S T E M . T R A C E S -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 2001 Free Software Foundation, Inc. -- 10-- -- 11-- GNARL 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- -- 13-- ware Foundation; either version 2, or (at your option) any later ver- -- 14-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- 17-- for more details. You should have received a copy of the GNU General -- 18-- Public License distributed with GNARL; see file COPYING. If not, write -- 19-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -- 20-- MA 02111-1307, USA. -- 21-- -- 22-- As a special exception, if other files instantiate generics from this -- 23-- unit, or you link this unit with other files to produce an executable, -- 24-- this unit does not by itself cause the resulting executable to be -- 25-- covered by the GNU General Public License. This exception does not -- 26-- however invalidate any other reasons why the executable file might be -- 27-- covered by the GNU Public License. -- 28-- -- 29-- GNAT was originally developed by the GNAT team at New York University. -- 30-- Extensive contributions were provided by Ada Core Technologies Inc. -- 31-- -- 32------------------------------------------------------------------------------ 33 34-- This package implements functions for traces when tasking is not involved 35 36-- Warning : NO dependencies to tasking should be created here 37 38-- This package, and all its children are used to implement debug 39-- informations 40 41-- A new primitive, Send_Trace_Info (Id : Trace_T; 'data') is introduced. 42-- Trace_T is an event identifier, 'data' are the informations to pass 43-- with the event. Thid procedure is used from within the Runtime to send 44-- debug informations. 45 46-- This primitive is overloaded in System.Traces.Tasking and this package. 47 48-- Send_Trace_Info calls Send_Trace, in System.Traces.Send, which is trarget 49-- dependent, to send the debug informations to a debugger, stream .. 50 51-- To add a new event, just add them to the Trace_T type, and write the 52-- corresponding Send_Trace_Info procedure. It may be required for some 53-- target to modify Send_Trace (eg. VxWorks). 54 55-- To add a new target, just adapt System.Traces.Send to your own purpose. 56 57package System.Traces is 58 59 type Trace_T is 60 ( 61 -- Events handled. 62 63 -- Messages 64 -- 65 M_Accept_Complete, 66 M_Select_Else, 67 M_RDV_Complete, 68 M_Call_Complete, 69 M_Delay, 70 71 -- Errors 72 -- 73 E_Missed, 74 E_Timeout, 75 E_Kill, 76 77 -- Waiting events 78 -- 79 W_Call, 80 W_Accept, 81 W_Select, 82 W_Completion, 83 W_Delay, 84 WU_Delay, 85 86 WT_Call, 87 WT_Select, 88 WT_Completion, 89 90 -- Protected objects events 91 -- 92 PO_Call, 93 POT_Call, 94 PO_Run, 95 PO_Lock, 96 PO_Unlock, 97 PO_Done, 98 99 -- Task handling events 100 -- 101 T_Create, 102 T_Activate, 103 T_Abort, 104 T_Terminate); 105 106 -- Send_Trace_Info procedures 107 108 -- They are overloaded, depending on the parameters passed with 109 -- the event, e.g. Time information, Task name, Accept name ... 110 111 procedure Send_Trace_Info (Id : Trace_T); 112 113 procedure Send_Trace_Info (Id : Trace_T; Timeout : Duration); 114 115end System.Traces; 116