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 - 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;