diff options
Diffstat (limited to 'tests/run-readelf-types.sh')
-rwxr-xr-x | tests/run-readelf-types.sh | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/tests/run-readelf-types.sh b/tests/run-readelf-types.sh new file mode 100755 index 00000000..a7af5734 --- /dev/null +++ b/tests/run-readelf-types.sh @@ -0,0 +1,122 @@ +#! /bin/sh +# Copyright (C) 2018 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +. $srcdir/test-subr.sh + +# Make sure --debug-dump=info implies .debug_types, even when implicit. +# See run-typeiter.sh +testfiles testfile-debug-types + +testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=str --debug-dump=info testfile-debug-types<<\EOF + +DWARF section [28] '.debug_info' at offset 0x1089: + [Offset] + Compilation unit at offset 0: + Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4 + [ b] compile_unit abbrev: 8 + producer (strp) "GNU C++ 4.8.2 20140120 (Red Hat 4.8.2-16) -mtune=generic -march=x86-64 -g -fdebug-types-section" + language (data1) C_plus_plus (4) + comp_dir (strp) "/home/mark/src/elfutils/tests" + low_pc (addr) 0x00000000004005b0 <main> + high_pc (data8) 11 (0x00000000004005bb) + stmt_list (sec_offset) 0 + [ 29] subprogram abbrev: 9 + external (flag_present) yes + name (strp) "main" + decl_file (data1) <stdin> (1) + decl_line (data1) 1 + type (ref4) [ 46] + low_pc (addr) 0x00000000004005b0 <main> + high_pc (data8) 11 (0x00000000004005bb) + frame_base (exprloc) + [ 0] call_frame_cfa + GNU_all_call_sites (flag_present) yes + [ 46] base_type abbrev: 10 + byte_size (data1) 4 + encoding (data1) signed (5) + name (string) "int" + [ 4d] variable abbrev: 11 + name (string) "a" + decl_file (data1) <stdin> (1) + decl_line (data1) 1 + type (ref_sig8) {18763953736e2de0} + external (flag_present) yes + location (exprloc) + [ 0] addr 0x601030 <a> + [ 64] variable abbrev: 11 + name (string) "b" + decl_file (data1) <stdin> (1) + decl_line (data1) 1 + type (ref_sig8) {7cf9bbf793fcaf13} + external (flag_present) yes + location (exprloc) + [ 0] addr 0x601031 <b> + +DWARF section [31] '.debug_str' at offset 0x11dd: + Offset String + [ 0] "/home/mark/src/elfutils/tests" + [ 1e] "GNU C++ 4.8.2 20140120 (Red Hat 4.8.2-16) -mtune=generic -march=x86-64 -g -fdebug-types-section" + [ 7e] "main" + +DWARF section [32] '.debug_types' at offset 0x1260: + [Offset] + Type unit at offset 0: + Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4 + Type signature: 0x7cf9bbf793fcaf13, Type offset: 0x38 [38] + [ 17] type_unit abbrev: 1 + language (data1) C_plus_plus (4) + GNU_odr_signature (data8) 4783233826607187165 + stmt_list (sec_offset) 0 + [ 25] structure_type abbrev: 2 + name (string) "A" + signature (ref_sig8) {18763953736e2de0} + declaration (flag_present) yes + sibling (ref4) [ 38] + [ 34] structure_type abbrev: 3 + name (string) "B" + declaration (flag_present) yes + [ 38] structure_type abbrev: 4 + name (string) "B" + byte_size (data1) 1 + decl_file (data1) <stdin> (1) + decl_line (data1) 1 + specification (ref4) [ 34] + Type unit at offset 67: + Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4 + Type signature: 0x18763953736e2de0, Type offset: 0x25 [25] + [ 5a] type_unit abbrev: 1 + language (data1) C_plus_plus (4) + GNU_odr_signature (data8) 16005269134005989797 + stmt_list (sec_offset) 0 + [ 68] structure_type abbrev: 5 + name (string) "A" + byte_size (data1) 1 + decl_file (data1) <stdin> (1) + decl_line (data1) 1 + [ 6e] structure_type abbrev: 6 + name (string) "B" + declaration (flag_present) yes + signature (ref_sig8) {7cf9bbf793fcaf13} + [ 79] member abbrev: 7 + name (string) "x" + decl_file (data1) <stdin> (1) + decl_line (data1) 1 + type (ref4) [ 6e] + data_member_location (data1) 0 +EOF + +exit 0 |