DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦cfb689997⟧ TextFile

    Length: 16980 (0x4254)
    Types: TextFile
    Names: »V«

Derivation

└─⟦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⟧ 

TextFile

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;