|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 16980 (0x4254)
Types: TextFile
Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦12c68c704⟧
└─⟦this⟧
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦220843204⟧
└─⟦this⟧
package Debug is
subtype Path_Name is String;
subtype Task_Name is String;
subtype Exception_Name is String;
subtype Hex_Number is String;
-- A Path_Name is used to reference declarations, objects, statements,
-- stack frames, tasks or types within progam units.
-- Many commands take both a Path_Name and a Stack_Frame. Though
-- the Path_Name type allows the specification of a stack frame, the
-- addition of the Stack_Frame parameter as a numeric value makes it
-- possible to specify the stack frame as a numeric argument from the
-- keyboard. If both a Stack_Frame and Path_Name are specified, the
-- Path_Name will be interpreted as the string Stack_Frame & Path_Name.
-- Task_Name may be either a hex number or string name for the task.
-- Exception_Name may be either a simple name for a predefined exception,
-- or a pathname to an Ada identified.
-- A Task_Name parameter of "all" specifies all tasks. A Task_Name
-- parameter of "" is interpreted as the control context task if explicitly
-- set, otherwise, all tasks. Exceptions to this rule are the commands
-- Run and Stack, for which a Task_Name parameter of "" specifies the
-- last task to stop if the control context is not explicitly set.
-- Commands to terminate debugging
procedure Debug_Off (Kill_Job : Boolean := False);
-- Debug_Off terminates debugging on the job. The job will run to
-- completion if Kill_Job is false. Otherwise, the job is terminated.
procedure Kill (Job : Boolean := True; Debugger : Boolean := False);
-- Kill can be used to kill either the job being debugged, or the
-- debugger itself.
-- Commands to query and modify program state
procedure Put (Variable : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0);
-- Display the value of the given object.
procedure Stack (For_Task : Task_Name := "";
Start : Integer := 0;
Count : Natural := 0);
-- Display Count stack frames for the specified task starting from frame
-- Start.
procedure Modify (New_Value : String := "";
Variable : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0);
-- Modify the value of the given object.
-- Commands to display ADA source
procedure Display (Location : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0;
Count : Natural := 0);
-- Display the source code for the given Location in the debugger window.
-- If the Location specifies a subprogram, package, or task, display
-- Count lines of source code including line numbers.
procedure Source (Location : Path_Name := ""; Stack_Frame : Integer := 0);
-- Like Definition, display the Location in an ada image.
-- Breakpoint handling commands; break 0 represents all breaks
procedure Break (Location : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0;
Count : Positive := 1;
In_Task : Task_Name := "";
Default_Lifetime : Boolean := True);
-- Set a break at the given location for the specified task. Count is
-- the number of times the location is executed before the break is active.
-- When Default_Lifetime is true, the breakpoint is temporary or permanent
-- as specified by the Permanent_Breakpoints option; if false, its
-- permanence is the opposite of the option.
-- The breakpoint will be given a unique number which can be used as the
-- breakpoint parameter of the Remove and Activate commands.
procedure Remove (Breakpoint : Natural; Delete : Boolean := False);
-- Deactivate the given breakpoint. With delete false, the breakpoint
-- can be installed again with the Activate command.
-- Use Show (Breakpoints) to display breaks.
procedure Activate (Breakpoint : Natural);
-- Install a previously removed breakpoint.
-- Commands to control all or individual tasks
procedure Stop (Name : Task_Name := "");
-- Stops execution of the specified task and keeps it stopped until
-- started by a call to Execute or Run naming the task or "all".
procedure Execute (Name : Task_Name := "");
-- Starts execution of the specified task if stopped.
procedure Xecute (Name : Task_Name := "");
-- same as Execute.
procedure Hold (Name : Task_Name := "");
-- Stops execution of the specified task and put it in the held state
-- until explicitly released by the command Release or a call to Execute or
-- Run explicitly naming this task. The held state differs from the
-- stopped state in that Execute ("all") will not run a held task.
procedure Release (Name : Task_Name := "");
-- Releases a task from the held state and moves it to the stopped
-- state. The task can then be started by a call to Execute or Run naming
-- the task or "all".
type Task_Category is
(All_Tasks, -- all known tasks
Blocked, -- tasks not in debugger, but not currently running
Held, -- tasks held in debugger (Hold command)
Not_Running, -- tasks not running for any reason
Running, -- tasks that are currently ready to run
Stopped); -- tasks stopped in the debugger (eg, at breakpoints)
procedure Task_Display (For_Task : Task_Name := "";
Task_Set : Task_Category := Debug.All_Tasks);
-- Display information about tasks in the given category.
type Stop_Event is
(About_To_Return, -- stop after last statement of a subprogram
Begin_Rendezvous, -- stop before first statement of accept body
End_Rendezvous, -- stop after last statement of accept body
Local_Statement, -- stop before next statement at same level
Machine_Instruction, -- stop before next instruction
Procedure_Entry, -- stop before first stmt/decl of called proc
Returned, -- stop before next statement in caller
Statement); -- stop before next statement
procedure Run (Stop_At : Stop_Event := Debug.Statement;
Count : Positive := 1;
In_Task : Task_Name := "");
-- Execute the specified task until the stop event has occurred
-- Count times.
procedure Clear_Stepping (For_Task : Task_Name := "");
-- Cancel any stepping operations for the given task.
-- Exception handling commands
procedure Catch (Name : Exception_Name := "<SELECTION>";
In_Task : Task_Name := "";
At_Location : Path_Name := "");
-- Stop execution when the specified exception is raised. Can be
-- limited to a particular task or location. Name = "all" catches
-- all exceptions; Name = "implicit" will catch implicitly raised
-- exceptions.
procedure Propagate (Name : Exception_Name := "<SELECTION>";
In_Task : Task_Name := "";
At_Location : Path_Name := "");
-- Request that execution not be stopped when the given exception is raised.
procedure Forget (Name : Exception_Name := "<SELECTION>";
In_Task : Task_Name := "";
At_Location : Path_Name := "");
-- Cancel a catch or propagate request.
-- Tracing commands
type Trace_Event is
(All_Events, -- Produce message for all of below
Call, -- Message for each subprogram entry
Exception_Raised, -- Message for each exception raised
Machine_Instruction, -- Message for each statement/decl
Propagate_Exception, -- Message for each frame popped by propagation
Rendezvous, -- Message for each rendezvous start and end
Statement); -- Message for each statement/decl
procedure Trace (On : Boolean := True;
Event : Trace_Event := Debug.All_Events;
In_Task : Task_Name := "";
At_Location : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0);
-- Enable or disable tracing. Tracing displays information about
-- the execution of the given_task when the specified Trace_Events
-- occur.
procedure Trace_To_File (File_Name : String := ">> FILE NAME <<");
-- Send trace output to the specified file. The null string
-- causes output to go to the debugger window.
-- History commands
procedure History_Display (Start : Integer := 0;
Count : Integer := 0;
For_Task : Task_Name := "");
-- Display Count history entries for the given task. If Start is positive,
-- it specifies the starting location from the newest entry; if negative,
-- from the oldest entry.
procedure Take_History (On : Boolean := True;
Event : Trace_Event := Debug.All_Events;
For_Task : Task_Name := "";
At_Location : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0);
-- Enable or disable history taking for the given task and location.
-- Commands to query debugger state
type Context_Type is (Control, Evaluation);
procedure Context (Set : Context_Type := Debug.Control;
To_Be : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0);
-- Set either the control or evaluation context. Control context
-- is generally used when a Task_Name parameter of "" is specified.
-- The evaluation context is used as a prefix for unqualified location
-- and object names.
type Option is
(Addresses, -- Include machine information
Break_At_Creation, -- Tasks stop before first decl
Declaration_Display, -- Include declarations in program display
Delete_Temporary_Breaks, -- Delete (vs deactivate) temp breakpoints
Display_Creation, -- Trace message for each task creation
Echo_Commands, -- Echo command in debugger window
Freeze_Tasks, -- Stop all tasks when one stops
Include_Packages, -- Task display includes packages
Interpret_Control_Words, -- Memory display for control stacks
Kill_Old_Jobs, -- Kill last debug job when next is begun
Machine_Level, -- Allow certain machine level operations
No_History_Timestamps, -- History display option
Optimize_Generic_History, -- No generic instance in history
Permanent_Breakpoints, -- Default breakpoints to permanent (vs temp)
Put_Locals, -- Put displays locals as well as parameters
Qualify_Stack_Names, -- Use fully qualified names in stack display
Require_Debug_Off, -- Debug_Off needed before debug next job
Save_Exceptions, -- Save exception-handling state across jobs
Show_Location, -- Display source in image when task stops
Timestamps); -- Include timestamps in command log
procedure Enable (Variable : Option; On : Boolean := True);
procedure Disable (Variable : Option; On : Boolean := False) renames Enable;
-- Enable or disable the specified option.
type Numeric is
(Display_Count, -- Default for Count in Display command
Display_Level, -- Number of levels to expand Put command's data
Element_Count, -- Max elements of array for Put to display
First_Element, -- Offset for start of Put's array display
History_Count, -- Default for Count in History_Display
History_Entries, -- History buffer size
History_Start, -- Default for Start in History_Display
Memory_Count, -- Default for Memory_Dump Count parameter
Pointer_Level, -- Number of pointers to expand in Put's data
Stack_Count, -- Default frame Count for Stack command
Stack_Start); -- Default for Start in Stack command
procedure Set_Value (Variable : Numeric; To_Value : Integer);
procedure Flag (Variable : String := ""; To_Value : String := "TRUE");
type State_Type is (All_State, Breakpoints, Contexts,
Exceptions, Flags, Histories, Libraries,
Special_Types, Steps, Stops_And_Holds, Traces,
-- internal debugger state
Active_Items, Exception_Cache, Inner_State, Statistics);
procedure Show (Values_For : State_Type := Debug.Breakpoints);
-- Display information about various debugger facilities.
type Information_Type is (Exceptions, Rendezvous, Space);
procedure Information (Info_Type : Information_Type := Debug.Exceptions;
For_Task : Task_Name := "");
-- Display information about the specified task.
procedure Comment (Information : String := "");
-- place a comment in the debugger window.
procedure Set_Task_Name (For_Task : Task_Name := "";
To_Name : String := "");
-- Set a task synonym for the specified task for use as a Task_Name
-- parameter to commands.
procedure Convert (Number : String := ""; To_Base : Natural := 0);
-- Hex/decimal conversion.
procedure Reset_Defaults;
-- Reset flags to initial values.
-- Unregister all special types.
procedure Current_Debugger (Target : String := "");
-- Set current debugger to the current window, or Target if
-- specified. Subsequent calls to Debug will be directed to
-- the specified target or native debugger.
-- Machine-level commands
-- For the following commands, address format is #Segment, #Offset
-- memory format is one of CONTROL, TYP, QUEUE, DATA, IMPORT, CODE, SYSTEM
procedure Memory_Display (Address : String := "";
Count : Natural := 0;
Format : String := "DATA");
procedure Location_To_Address (Location : Path_Name := "<SELECTION>";
Stack_Frame : Integer := 0);
procedure Address_To_Location (Address : String := "");
procedure Exception_To_Name (Implementation_Image : String := "");
procedure Memory_Modify (Address : String := ">>HEX ADDRESS<<";
Value : String := ">>HEX VALUE<<";
Width : Natural := 0;
Format : String := "DATA");
-- The format string is used to distinguish various addressing modes.
-- Width is interpreted according to the machine, where 0 is the
-- natural word width.
procedure Register_Display (Name : String := "";
For_Task : Task_Name := "";
Stack_Frame : Integer := 0;
Format : String := "");
-- "" implies display of interesting registers.
-- "ALL" displays all possible machine registers.
procedure Register_Modify (Name : String := ">>REGISTER NAME<<";
Value : String := ">>HEX VALUE<<";
For_Task : Task_Name := "";
Stack_Frame : Integer := 0;
Format : String := "");
procedure Object_Location (Variable : Path_Name := "<SELECTION>";
Options : String := "");
-- Display the machine location of the given Object.
-- Options describe various target specific kinds of information
-- to display.
procedure Attach_Process (Name : String := ""; Options : String := "");
-- Register the named process for control under the current debugger.
procedure Target_Request (Options : String := ""; To_File : String := "");
-- Perform target specific requests.
-- Output can be directed to the Debugger Window or to some other
-- file or device. Null value indicates debugger window.
procedure Connect (Remote_Machine : String := ""; Target : String := "");
-- Hook up a debugger to given machine.
-- Target should specify a target key - "" implies we can calculate
-- the target from the remote machine name.
procedure Invoke (Main_Unit : String := "<IMAGE>";
Options : String := "";
Spawn_Job : Boolean := True);
-- Find or start a debugger to the given machine, and start debugging
-- the indicated job.
procedure Reconnect;
-- attempt to reestablish communication after failure
pragma Subsystem (Native_Debugger);
pragma Module_Name (4, 3801);
end Debug;