Branch Coverage

blib/lib/Parse/Readelf/Debug/Info.pm
Criterion Covered Total %
branch 214 236 90.6


line true false branch
767 1 19 unless ($file_name)
769 1 18 if (ref $this)
771 1 18 unless (-f $file_name)
773 1 17 if (defined $line_info and ref $line_info ne 'Parse::Readelf::Debug::Line')
778 13 4 unless defined $line_info
782 1 16 unless open READELF, '-|', $command . ' ' . $file_name
788 14 116 if /$re_section_start/
804 108 76548 if (/$re_dwarf_version/) { }
108 76440 elsif (/$re_unit_offset/) { }
84 76356 elsif (/$re_unit_signature/) { }
84 76272 elsif (/$re_type_offset/) { }
807 1 107 unless defined $re_item_start[$version]
825 0 84 unless $signature
830 42 76613 unless $version >= 0
833 3 76610 if (/$re_section_stop/ and not /$re_section_start/)
840 16663 59947 if (/$re_item_start[$version]/i) { }
26461 33486 elsif (not defined $item) { }
114 33372 elsif (/$re_abstract_origin[$version]/) { }
92 33280 elsif (/$re_bit_offset[$version]/) { }
92 33188 elsif (/$re_bit_size[$version]/) { }
1589 31599 elsif (/$re_byte_size[$version]/) { }
23 31576 elsif (/$re_comp_dir[$version]/) { }
693 30883 elsif (/$re_const_value[$version]/) { }
0 30883 elsif (/$re_containing_type[$version]/) { }
2844 28039 elsif (/$re_decl_file[$version]/) { }
2844 25195 elsif (/$re_decl_line[$version]/) { }
1221 23974 elsif (/$re_declaration[$version]/) { }
533 23441 elsif (/$re_encoding[$version]/) { }
905 22536 elsif (/$re_external[$version]/) { }
23 22513 elsif (/$re_language[$version]/) { }
33 22480 elsif (defined $re_linkage_name_tag[$version] and /$re_linkage_name_tag[$version]/) { }
156 22324 elsif (/$re_location[$version]/) { }
1050 21274 elsif (/$re_member_location[$version]/) { }
3917 17357 elsif (/$re_name_tag[$version]/) { }
23 17334 elsif (/$re_producer[$version]/) { }
21 17313 elsif (defined $re_signature_tag[$version] and /$re_signature_tag[$version]/) { }
155 17158 elsif (/$re_specification[$version]/) { }
10677 6481 elsif (/$re_type[$version]/) { }
62 6419 elsif (/$re_upper_bound[$version]/) { }
3567 2852 elsif (/$re_ignored_attributes[$version]/i) { }
1 2851 elsif (/^\s*(?:<[0-9A-F ]+>)?\s*(DW_AT_\w+)\s*:/i) { }
843 12312 4351 if (defined $item)
846 2748 9564 if ($signature)
850 2235 6009 if defined $$item{$_} and not $$item{$_} =~ /^S/
856 0 16857 if /^[0-9a-f]{1,7}$/
861 84 2664 if ($$item{'id'} eq $compilation_unit . '_' . $type_offset)
868 0 12312 if (defined $$item{'abstract_origin'} and defined $$item{'type_tag'} eq 'DW_TAG_variable')
879 15136 484 if defined $$item{$_}
882 5 3 if ($$item{'type_tag'} eq 'DW_TAG_member' and defined $$item{'member_location'} and defined $$item{'type'} and defined $self{'item_map'}{$$item{'type'}} and not defined $self{'item_map'}{$$item{'type'}}{'member_location'})
901 11828 4835 if (defined $item)
903 0 11828 unless $$item{'type_tag'}
908 11807 21 if ($$item{'level'} >= 1)
910 9133 2674 if $$item{'level'} > 1
916 30 0 if ($$item{'type_tag'} eq 'DW_TAG_inheritance' and not defined $$item{'decl_file'} and defined $level_stack[$$item{'level'} - 1]{'decl_file'})
929 100 39 if (not defined $name and $$item{'type_tag'} =~ /^DW_TAG_(?:class|structure|union)_type$/ and defined $$item{'specification'} and defined $self{'item_map'}{$$item{'specification'}})
940 3776 8052 if (defined $name)
942 2761 1015 if (not defined $self{'name_map'}{$name}) { }
462 553 elsif (ref $self{'name_map'}{$name} eq 'HASH') { }
553 0 elsif (ref $self{'name_map'}{$name} eq 'ARRAY') { }
959 2716 9112 if (defined $$item{'decl_file'})
962 19 451 if $$item{'type_tag'} eq 'DW_TAG_pointer_type' and not defined $$item{'name'} and not defined $$item{'type'}
972 3510 13153 $signature ? :
976 12325 4338 if (defined $$tag_needs_attributes{$4}) { }
4337 1 elsif ($is_ignored{$4}) { }
1007 0 0 defined $2 ? :
1026 1050 0 if defined $1
1033 0 21 defined $1 ? :
1037 144 10533 defined $2 ? :
1055 144 23512 if (defined $$item{$_} and $$item{$_} =~ /^S([0-9A-F]+)/i)
1061 1 14 unless close READELF
1064 1 13 unless @{$self{'items'};} > 0
1110 17 8 ref $id eq 'HASH' ? :
8 25 !defined($id) ? :
1153 7 37 if $re_name eq ''
1157 9031 1760 ref $_ eq 'HASH' ? :
1160 11313 2841 if defined $$_{'name'} and not $$_{'name'} =~ /$re_name/
1161 292 60 if not defined $$_{'name'} and $re_name ne '' and not $$_{'type_tag'} =~ /^DW_TAG_(?:class|structure|union)_type$/ && defined $$_{'specification'} && $$this{'item_map'}{$$_{'specification'}}{'name'} =~ /$re_name/
1168 1638 911 if defined $$_{'type_tag'} and not $$_{'type_tag'} =~ /$re_type_tag/
1169 0 911 if not defined $$_{'type_tag'} and $re_type_tag ne ''
1170 909 2 defined $$_{'name'} ? :
1232 51 638 unless defined $initial_offset
1237 282 407 unless defined $item and defined $$item{'decl_file'}
1240 358 49 if (defined $$this{'sl_level'}) { }
1255 49 7 if ($display_nested_items or $$item{'type_tag'} ne 'DW_TAG_structure_type' or $level < 1 or $$item{'type_tag'} ne $$this{'tag_stack'}[$level - 1])
1262 2 0 if (not defined $name and $level < 1 and $$item{'type_tag'} =~ /^DW_TAG_(?:class|structure|union)_type$/ and defined $$item{'specification'} and defined $$this{'item_map'}{$$item{'specification'}})
1270 12 388 unless defined $name
1273 283 117 defined $$item{'member_location'} ? :
1278 148 252 defined $$item{'byte_size'} ? :
1282 77 323 if (defined $$item{'bit_size'} or defined $$item{'bit_offset'})
1284 77 0 defined $$item{'bit_size'} ? :
1286 77 0 defined $$item{'bit_offset'} ? :
1293 329 71 if (defined $$item{'type'})
1302 22 360 if ($$type{'type_tag'} eq 'DW_TAG_const_type') { }
6 354 elsif ($$type{'type_tag'} eq 'DW_TAG_volatile_type') { }
8 346 elsif ($$type{'type_tag'} eq 'DW_TAG_reference_type') { }
16 330 elsif ($$type{'type_tag'} eq 'DW_TAG_pointer_type') { }
13 317 elsif ($$type{'type_tag'} eq 'DW_TAG_array_type') { }
1304 14 8 unless $prefix =~ /const/
1311 6 0 unless $prefix =~ /volatile/
1326 4 12 if (defined $$type{'type'} and defined $$this{'item_map'}{$$type{'type'}})
1339 13 0 if defined $$type{'sub_items'}[$_]{'upper_bound'}
1350 246 6 if $size == 0 and defined $$type{'byte_size'} and $$type{'byte_size'} > 0
1359 6 323 if ($$type{'type_tag'} =~ /^DW_TAG_(?:class|structure|union)_type$/ and defined $$type{'specification'})
1365 327 2 if defined $$type{'name'}
1367 0 2 if $type_name eq '' and $prefix || $postfix
1369 14 315 if $prefix
1370 24 305 if $postfix
1373 2 327 if defined $re_substructure_filter and $type_name =~ /$re_substructure_filter/
1382 6 0 if defined $$type{'byte_size'} and $$type{'byte_size'} > 0
1396 309 0 unless $$_{'type_tag'} eq 'DW_TAG_typedef'
1401 117 283 if (@sub_layout)
1403 73 17 defined $$b[$BITOFFSET] ? :
16 158 defined $$b[$BITOFFSET] ? :
90 174 defined $$a[$BITOFFSET] ? :
0 106 unless $$a[$OFFSET] <=> $$b[$OFFSET] or defined $$a[$BITOFFSET] ? defined $$b[$BITOFFSET] ? $$a[$BITOFFSET] <=> $$b[$BITOFFSET] : 1 : (defined $$b[$BITOFFSET] ? -1 : 0)
1421 400 0 if (defined $$item{'compilation_unit'} and defined $$item{'decl_file'} and defined $$item{'decl_line'})
1431 7 393 if ($$item{'type_tag'} =~ /^DW_TAG_(?:class|structure|union)_type$/ and not $name and not $type_name and 0 == @bit_data) { }
1447 358 49 if ($$this{'sl_level'} > 0) { }