This is the mail archive of the
dwarf2@corp.sgi.com
mailing list for the dwarf2 project.
MAXAda DWARF dump for Figure 48 example (made legal)
- To: dwarf2 at corp dot sgi dot com (dwarf2)
- Subject: MAXAda DWARF dump for Figure 48 example (made legal)
- From: todd dot allen at ccur dot com (Todd Allen)
- Date: Wed, 7 Mar 2001 11:04:02 -0700 (MST)
- Reply-To: todd dot allen at ccur dot com (Todd Allen)
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