This is the mail archive of the dwarf2@corp.sgi.com mailing list for the dwarf2 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

MAXAda DWARF dump for Figure 48 example (made legal)


As Ron requested, here's the DWARF dump from our MAXAda 3.3.1 compiler for
the example in Figure 48, which I've made legal and wrapped in a procedure.
Here are my modifications to make it legal, since there were some choices to
be made in doing so:

   procedure it is
      subtype teeny is integer range 1..100;
      type vec is array (teeny range <>) of integer;

      m : teeny := 100;

      type rec1 is record
         vec1 : vec(1 .. m);
      end record;

      type rec2 (n : teeny := 100) is record
         vec2 : vec(1 .. n);
      end record;

      obj2b : rec2;
   begin
      null;
   end it;

And here's the DWARF dump itself.  It's the raw thing, and will contain some
things that will seem mysterious to anyone who hasn't read out Ada 95 DWARF
spec:

   DIE (0x1) [A$dw_it..SPEC..comp] 1
      DW_TAG_compile_unit
      DW_CHILDREN_yes
      DW_AT_name(DW_FORM_string) "it.a"
      DW_AT_language(DW_FORM_udata) 32769
      DW_AT_low_pc(DW_FORM_addr) 0x0 ()
      DW_AT_high_pc(DW_FORM_addr) 0x0 ()
      DW_AT_stmt_list(DW_FORM_data4) 0
      DW_AT_comp_dir(DW_FORM_string) "lemur:/lem3/todd/bugs/work"
      DW_AT_producer(DW_FORM_string) "MAXAda Ada 95 Compiler"
      DW_AT_identifier_case(DW_FORM_udata) 2
      DW_AT_base_types(DW_FORM_ref_addr) [A$dw_STANDARD..SPEC..comp]
      DW_AT_decl_file(DW_FORM_udata) 1
      DW_AT_decl_line(DW_FORM_udata) 1
      DW_AT_decl_column(DW_FORM_udata) 1

      DIE (0x2) [A$dw_it..SPEC] 2
         DW_TAG_subprogram
         DW_CHILDREN_yes
         DW_AT_static_link_parameter(DW_FORM_block) [DW_OP_fbreg -52]
         DW_AT_decl_file(DW_FORM_udata) 1
         DW_AT_decl_line(DW_FORM_udata) 1
         DW_AT_decl_column(DW_FORM_udata) 1
         DW_AT_frame_base(DW_FORM_block) []
         DW_AT_name(DW_FORM_string) "it"
         DW_AT_external(DW_FORM_flag) TRUE
         DW_AT_high_pc(DW_FORM_addr) 0x80003370 (..A_it_end)
         DW_AT_low_user_pc(DW_FORM_addr) 0x80002954 (..A_it_)
         DW_AT_elaborated(DW_FORM_flag) TRUE
         DW_AT_low_pc(DW_FORM_addr) 0x80002944 (A_it)

         DIE (0x3) [A$dw_teeny.it] 3
            DW_TAG_subtype
            DW_CHILDREN_no
            DW_AT_name(DW_FORM_string) "teeny"
            DW_AT_upper_bound(DW_FORM_sdata) 100
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 2
            DW_AT_decl_column(DW_FORM_udata) 21
            DW_AT_subtype_parent(DW_FORM_ref_addr) [A$dw_integer]
            DW_AT_lower_bound(DW_FORM_sdata) 1

         DIE (0x5) [] 5
            DW_TAG_subtype
            DW_CHILDREN_no
            DW_AT_subtype_parent(DW_FORM_ref_addr) [A$dw_teeny.it]
            DW_AT_byte_size(DW_FORM_udata) 4
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 3
            DW_AT_decl_column(DW_FORM_udata) 23

         DIE (0x6) [] 6
            DW_TAG_constant
            DW_CHILDREN_no
            DW_AT_artificial(DW_FORM_flag) TRUE
            DW_AT_location(DW_FORM_block) [DW_OP_plus_uconst 4]
            DW_AT_type(DW_FORM_ref_addr) 0x5 (5) []
            DW_AT_interpretation(DW_FORM_udata) 1
            DW_AT_unresolved_kind(DW_FORM_udata) 2

         DIE (0x7) [] 7
            DW_TAG_constant
            DW_CHILDREN_no
            DW_AT_artificial(DW_FORM_flag) TRUE
            DW_AT_location(DW_FORM_block) [DW_OP_plus_uconst 8]
            DW_AT_type(DW_FORM_ref_addr) 0x5 (5) []
            DW_AT_interpretation(DW_FORM_udata) 1
            DW_AT_unresolved_kind(DW_FORM_udata) 2

         DIE (0x4) [A$dw_vec.it] 4
            DW_TAG_array_type
            DW_CHILDREN_yes
            DW_AT_name(DW_FORM_string) "vec"
            DW_AT_type(DW_FORM_ref_addr) [A$dw_integer]
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 3
            DW_AT_decl_column(DW_FORM_udata) 16
            DW_AT_unconstrained(DW_FORM_flag) TRUE
            DW_AT_unresolved(DW_FORM_flag) TRUE

            DIE (0x8) [] 8
               DW_TAG_subrange_type
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) [A$dw_teeny.it]
               DW_AT_lower_bound(DW_FORM_ref_addr) 0x6 (6) []
               DW_AT_upper_bound(DW_FORM_ref_addr) 0x7 (7) []

         DIE (0x9) [] 9
            DW_TAG_padding
            DW_CHILDREN_no

         DIE (0xa) [A$dw_m.it] 10
            DW_TAG_variable
            DW_CHILDREN_no
            DW_AT_type(DW_FORM_ref_addr) [A$dw_teeny.it]
            DW_AT_name(DW_FORM_string) "m"
            DW_AT_location(DW_FORM_block) [DW_OP_fbreg -12]
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 5
            DW_AT_decl_column(DW_FORM_udata) 4

         DIE (0xf) [] 15
            DW_TAG_constant
            DW_CHILDREN_no
            DW_AT_type(DW_FORM_ref_addr) [A$dw_teeny.it]
            DW_AT_artificial(DW_FORM_flag) TRUE
            DW_AT_description(DW_FORM_string) "m"
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 5
            DW_AT_decl_column(DW_FORM_udata) 4
            DW_AT_location(DW_FORM_block) [DW_OP_fbreg -24]
            DW_AT_interpretation(DW_FORM_udata) 1

         DIE (0xc) [A$dw_rec1.it] 12
            DW_TAG_structure_type
            DW_CHILDREN_yes
            DW_AT_name(DW_FORM_string) "rec1"
            DW_AT_decl_column(DW_FORM_udata) 17
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 7

            DIE (0xd) [A$dw_TYPE__BM2.rec1.it..dmnd__B.it] 13
               DW_TAG_array_type
               DW_CHILDREN_yes
               DW_AT_decl_column(DW_FORM_udata) 14
               DW_AT_subtype_parent(DW_FORM_ref_addr) [A$dw_vec.it]
               DW_AT_decl_line(DW_FORM_udata) 8
               DW_AT_decl_file(DW_FORM_udata) 1

               DIE (0xe) [] 14
                  DW_TAG_subrange_type
                  DW_CHILDREN_no
                  DW_AT_type(DW_FORM_ref_addr) [A$dw_integer]
                  DW_AT_lower_bound(DW_FORM_sdata) 1
                  DW_AT_upper_bound(DW_FORM_ref_addr) 0xf (15) []

            DIE (0x11) [] 17
               DW_TAG_padding
               DW_CHILDREN_no

            DIE (0x12) [A$dw_vec1.rec1.it] 18
               DW_TAG_member
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) 0xd (13) [A$dw_TYPE__BM2.rec1.it..dmnd__B.it]
               DW_AT_data_member_location(DW_FORM_block) [DW_OP_plus_uconst 0, DW_OP_dup 0, DW_OP_deref 0, DW_OP_plus 0]
               DW_AT_decl_column(DW_FORM_udata) 7
               DW_AT_name(DW_FORM_string) "vec1"
               DW_AT_decl_line(DW_FORM_udata) 8
               DW_AT_decl_file(DW_FORM_udata) 1

            DIE (0x14) [] 20
               DW_TAG_member
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) [A$dw_integer]
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_data_member_location(DW_FORM_block) [DW_OP_plus_uconst 0]

            DIE (0x15) [] 21
               DW_TAG_subprogram
               DW_CHILDREN_no
               DW_AT_description(DW_FORM_string) "rec1 initialization"
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_low_pc(DW_FORM_addr) 0x8000562c (A_rec1.it..INIT)
               DW_AT_low_user_pc(DW_FORM_addr) 0x8000565c (..A_rec1.it..INIT_)
               DW_AT_high_pc(DW_FORM_addr) 0x80005690 (..A_rec1.it..INIT_end)
               DW_AT_frame_base(DW_FORM_block) []
               DW_AT_decl_file(DW_FORM_udata) 1
               DW_AT_decl_line(DW_FORM_udata) 7
               DW_AT_decl_column(DW_FORM_udata) 17

            DIE (0x17) [] 23
               DW_TAG_subprogram
               DW_CHILDREN_no
               DW_AT_description(DW_FORM_string) "rec1 sizing"
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_low_pc(DW_FORM_addr) 0x80006214 (A_rec1.it..SIZE)
               DW_AT_low_user_pc(DW_FORM_addr) 0x80006244 (..A_rec1.it..SIZE_)
               DW_AT_high_pc(DW_FORM_addr) 0x80006278 (..A_rec1.it..SIZE_end)
               DW_AT_frame_base(DW_FORM_block) []
               DW_AT_decl_file(DW_FORM_udata) 1
               DW_AT_decl_line(DW_FORM_udata) 7
               DW_AT_decl_column(DW_FORM_udata) 17

         DIE (0x19) [] 25
            DW_TAG_padding
            DW_CHILDREN_no

         DIE (0x1c) [] 28
            DW_TAG_constant
            DW_CHILDREN_no
            DW_AT_type(DW_FORM_ref_addr) [A$dw_teeny.it]
            DW_AT_artificial(DW_FORM_flag) TRUE
            DW_AT_description(DW_FORM_string) "100"
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 11
            DW_AT_decl_column(DW_FORM_udata) 28
            DW_AT_const_value(DW_FORM_sdata) 100

         DIE (0x1a) [A$dw_rec2.it] 26
            DW_TAG_structure_type
            DW_CHILDREN_yes
            DW_AT_name(DW_FORM_string) "rec2"
            DW_AT_decl_column(DW_FORM_udata) 36
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 11

            DIE (0x1b) [A$dw_n.D.rec2.it] 27
               DW_TAG_member
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) [A$dw_teeny.it]
               DW_AT_data_member_location(DW_FORM_block) [DW_OP_plus_uconst 0]
               DW_AT_discriminant(DW_FORM_flag) TRUE
               DW_AT_name(DW_FORM_string) "n"
               DW_AT_default_value(DW_FORM_ref_addr) 0x1c (28) []
               DW_AT_decl_file(DW_FORM_udata) 1
               DW_AT_decl_line(DW_FORM_udata) 11
               DW_AT_decl_column(DW_FORM_udata) 15

            DIE (0x21) [] 33
               DW_TAG_member
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) [A$dw_teeny.it]
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_data_member_location(DW_FORM_block) [DW_OP_plus_uconst 16]
               DW_AT_description(DW_FORM_string) "n"
               DW_AT_decl_file(DW_FORM_udata) 1
               DW_AT_decl_line(DW_FORM_udata) 11
               DW_AT_decl_column(DW_FORM_udata) 15
               DW_AT_interpretation(DW_FORM_udata) 1

            DIE (0x1f) [A$dw_TYPE__BM4.rec2.it..dmnd__B.it] 31
               DW_TAG_array_type
               DW_CHILDREN_yes
               DW_AT_decl_column(DW_FORM_udata) 14
               DW_AT_subtype_parent(DW_FORM_ref_addr) [A$dw_vec.it]
               DW_AT_decl_line(DW_FORM_udata) 12
               DW_AT_decl_file(DW_FORM_udata) 1

               DIE (0x20) [] 32
                  DW_TAG_subrange_type
                  DW_CHILDREN_no
                  DW_AT_type(DW_FORM_ref_addr) [A$dw_integer]
                  DW_AT_lower_bound(DW_FORM_sdata) 1
                  DW_AT_upper_bound(DW_FORM_ref_addr) 0x21 (33) []

            DIE (0x22) [] 34
               DW_TAG_padding
               DW_CHILDREN_no

            DIE (0x23) [A$dw_vec2.rec2.it] 35
               DW_TAG_member
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) 0x1f (31) [A$dw_TYPE__BM4.rec2.it..dmnd__B.it]
               DW_AT_data_member_location(DW_FORM_block) [DW_OP_plus_uconst 4, DW_OP_dup 0, DW_OP_deref 0, DW_OP_plus 0]
               DW_AT_decl_column(DW_FORM_udata) 7
               DW_AT_name(DW_FORM_string) "vec2"
               DW_AT_decl_line(DW_FORM_udata) 12
               DW_AT_decl_file(DW_FORM_udata) 1

            DIE (0x25) [] 37
               DW_TAG_member
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) [A$dw_integer]
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_data_member_location(DW_FORM_block) [DW_OP_plus_uconst 4]

            DIE (0x26) [] 38
               DW_TAG_member
               DW_CHILDREN_no
               DW_AT_type(DW_FORM_ref_addr) [A$dw_DV1]
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_data_member_location(DW_FORM_block) [DW_OP_plus_uconst 8]

            DIE (0x27) [] 39
               DW_TAG_subprogram
               DW_CHILDREN_no
               DW_AT_description(DW_FORM_string) "rec2 initialization"
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_low_pc(DW_FORM_addr) 0x80007ee8 (A_rec2.it..INIT)
               DW_AT_low_user_pc(DW_FORM_addr) 0x80007f18 (..A_rec2.it..INIT_)
               DW_AT_high_pc(DW_FORM_addr) 0x80007f4c (..A_rec2.it..INIT_end)
               DW_AT_frame_base(DW_FORM_block) []
               DW_AT_decl_file(DW_FORM_udata) 1
               DW_AT_decl_line(DW_FORM_udata) 11
               DW_AT_decl_column(DW_FORM_udata) 36

            DIE (0x29) [] 41
               DW_TAG_subprogram
               DW_CHILDREN_no
               DW_AT_description(DW_FORM_string) "rec2 sizing"
               DW_AT_artificial(DW_FORM_flag) TRUE
               DW_AT_low_pc(DW_FORM_addr) 0x80008ad0 (A_rec2.it..SIZE)
               DW_AT_low_user_pc(DW_FORM_addr) 0x80008b00 (..A_rec2.it..SIZE_)
               DW_AT_high_pc(DW_FORM_addr) 0x80008b34 (..A_rec2.it..SIZE_end)
               DW_AT_frame_base(DW_FORM_block) []
               DW_AT_decl_file(DW_FORM_udata) 1
               DW_AT_decl_line(DW_FORM_udata) 11
               DW_AT_decl_column(DW_FORM_udata) 36

         DIE (0x2b) [] 43
            DW_TAG_padding
            DW_CHILDREN_no

         DIE (0x2c) [A$dw_obj2b.it] 44
            DW_TAG_variable
            DW_CHILDREN_no
            DW_AT_type(DW_FORM_ref_addr) [A$dw_rec2.it]
            DW_AT_name(DW_FORM_string) "obj2b"
            DW_AT_location(DW_FORM_block) [DW_OP_fbreg -36, DW_OP_deref 0]
            DW_AT_decl_file(DW_FORM_udata) 1
            DW_AT_decl_line(DW_FORM_udata) 15
            DW_AT_decl_column(DW_FORM_udata) 4

      DIE (0x2e) [] 46
         DW_TAG_padding
         DW_CHILDREN_no

   DIE (0x2f) [] 47
      DW_TAG_padding
      DW_CHILDREN_no

-- 
Todd Allen
Concurrent Computer Corporation


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]