DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦55adc321b⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure List, seg_0043dd, separate Call_Trees

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



separate (Call_Trees)
procedure List (These_Objects : in String := "<SELECTION>") is
    Iter : Ada_Program.Element_List :=
       Ada_Program.Conversion.Resolve (These_Objects, Visible => False);

    procedure Display_List (This_Tree : Queues.Queue) is
        The_Tree : Queues.Queue := This_Tree;
    begin  
        Queues.Delete (The_Tree);
        while not Queues.Is_Empty (The_Tree) loop
            declare
                Current_Sub : Call_Tree_Queues.Referenced_Subprogram :=
                   Queues.First (The_Tree);  
                Indent : constant String (1 .. Current_Sub.Nested_Level * 3) :=
                   (others => ' ');
            begin
                Io.Put (Indent & Image (Of_This_Element =>
                                           Current_Sub.Subprogram_Id));
                if Current_Sub.First_Occurrence then
                    Io.New_Line;
                else
                    Io.Put_Line ("  (see above)");
                end if;
            end;
            Queues.Delete (The_Tree);
        end loop;
    end Display_List;


begin

    Log.Put_Line ("[Call_Trees.List (These_Objects => " & These_Objects & ")]");
    Io.New_Line;

    Ada_Program.Reset (Iter);
    if Ada_Program.Done (Iter) then
        Log.Put_Line (Message =>
                         "ERROR: " & These_Objects &
                            " does not resolve to any Ada program element",
                      Kind    => Profile.Error_Msg);
    else
        while not Ada_Program.Done (Iter) loop
            declare
                The_Body  : Ada_Program.Element := Ada_Program.Value (Iter);
                Separator : constant String (1 .. 80) := (others => '-');
            begin  
                Io.Put_Line (Image (The_Body) & ":");
                Io.New_Line;
                Display_List (Call_Tree_Queues.Tree_For (The_Body));
                Io.New_Line;
                Io.Put_Line (Separator);
                Io.New_Line;
            end;
            Ada_Program.Next (Iter);
        end loop;  
    end if;
    Log.Put_Line ("[Call_Trees.List terminated]");
end List;

E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=18 rec1=00 rec2=01 rec3=018
        [0x01] rec0=1c rec1=00 rec2=02 rec3=04a
        [0x02] rec0=08 rec1=00 rec2=03 rec3=000
    tail 0x21700167c815c633c451a 0x42a00088462061e03