This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Add a dw2-3.S test


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e268c0a63c2c4c60d54c07d1c3055cb0e62f6b40

commit e268c0a63c2c4c60d54c07d1c3055cb0e62f6b40
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Apr 4 07:18:17 2015 -0700

    Add a dw2-3.S test
    
    This patch adds a dw2-3.S test for upcoming SHF_COMPRESSED test. The
    existing dw2-1.S/dw2-2.S tests generate non-compressed debug sections
    for SHF_COMPRESSED since SHF_COMPRESSED compressed debug sections are
    bigger.
    
    	* binutils-all/compress.exp (testfile): Remove suffix.
    	(compressedfile): Likewise.
    	(compressedfile2): Likewise.
    	(libfile): Likewise.
    	(testfile3): New.
    	(compressedfile3): Likewise.
    	Updated.
    	Add a dw2-3.S test.
    	* binutils-all/dw2-3.S: New file.
    	* binutils-all/dw2-3.W: Likewise.

Diff:
---
 binutils/testsuite/ChangeLog                       |  16 ++
 binutils/testsuite/binutils-all/compress.exp       |  74 +++--
 binutils/testsuite/binutils-all/dw2-3.S            | 316 +++++++++++++++++++++
 binutils/testsuite/binutils-all/dw2-3.W            | 156 ++++++++++
 .../testsuite/binutils-all/libdw2-compressed.out   |   2 +
 binutils/testsuite/binutils-all/libdw2.out         |   6 +
 6 files changed, 544 insertions(+), 26 deletions(-)

diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog
index 04dfa46..827e836 100644
--- a/binutils/testsuite/ChangeLog
+++ b/binutils/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2015-04-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* binutils-all/compress.exp (testfile): Remove suffix.
+	(compressedfile): Likewise.
+	(compressedfile2): Likewise.
+	(libfile): Likewise.
+	(testfile3): New.
+	(compressedfile3): Likewise.
+	Updated.
+	Add a dw2-3.S test.
+	(${libfile}.a): Add ${compressedfile3}.o.
+	* binutils-all/dw2-3.S: New file.
+	* binutils-all/dw2-3.W: Likewise.
+	* binutils-all/libdw2-compressed.out: Updated.
+	* binutils-all/libdw2.out: Likewise.
+
 2015-04-03  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* lib/binutils-common.exp (is_zlib_supported): Always return 1.
diff --git a/binutils/testsuite/binutils-all/compress.exp b/binutils/testsuite/binutils-all/compress.exp
index 75b8783..02111f1 100644
--- a/binutils/testsuite/binutils-all/compress.exp
+++ b/binutils/testsuite/binutils-all/compress.exp
@@ -20,43 +20,55 @@ if { [is_remote host] || ![is_elf_format] || ![is_zlib_supported] } then {
     return
 }
 
-set testfile tmpdir/dw2-1.o
-set compressedfile tmpdir/dw2-1-compressed.o
+set testfile tmpdir/dw2-1
+set compressedfile tmpdir/dw2-1-compressed
 set copyfile tmpdir/dw2-copy
-set compressedfile2 tmpdir/dw2-2-compressed.o
-set libfile tmpdir/libdw2.a
+set compressedfile2 tmpdir/dw2-2-compressed
+set libfile tmpdir/libdw2
 set compressedcopyfile tmpdir/dw2-copy-compressed
+set testfile3 tmpdir/dw2-3
+set compressedfile3 tmpdir/dw2-3-compressed
 
-if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S $testfile --nocompress-debug-sections] } then {
+if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${testfile}.o --nocompress-debug-sections] } then {
     unsupported "compressed debug sections"
     return
 }
 
-if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S $compressedfile --compress-debug-sections] } then {
+if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S ${compressedfile}.o --compress-debug-sections] } then {
     unsupported "compressed debug sections"
     return
 }
 
-if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S $compressedfile2 --compress-debug-sections] } then {
+if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S ${compressedfile2}.o --compress-debug-sections] } then {
     unsupported "compressed debug sections"
     return
 }
 
-remote_file host delete $libfile
-set got [binutils_run $AR "rc $libfile $compressedfile $compressedfile2"]
+if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${testfile3}.o --nocompress-debug-sections] } then {
+    unsupported "compressed debug sections"
+    return
+}
+
+if { ![binutils_assemble_flags $srcdir/$subdir/dw2-3.S ${compressedfile3}.o --compress-debug-sections] } then {
+    unsupported "compressed debug sections"
+    return
+}
+
+remote_file host delete ${libfile}.a
+set got [binutils_run $AR "rc ${libfile}.a ${compressedfile}.o ${compressedfile2}.o ${compressedfile3}.o"]
 if ![string match "" $got] then {
     fail "compressed debug sections"
     return
 }
 
 set testname "objcopy compress debug sections"
-set got [binutils_run $OBJCOPY "--compress-debug-sections $testfile ${copyfile}.o"]
+set got [binutils_run $OBJCOPY "--compress-debug-sections ${testfile}.o ${copyfile}.o"]
 if ![string match "" $got] then {
     fail "objcopy ($testname)"
 } else {
-    send_log "cmp $compressedfile ${copyfile}.o\n"
-    verbose "cmp $compressedfile ${copyfile}.o"
-    set src1 ${compressedfile}
+    send_log "cmp ${compressedfile}.o ${copyfile}.o\n"
+    verbose "cmp ${compressedfile}.o ${copyfile}.o"
+    set src1 ${compressedfile}.o
     set src2 ${copyfile}.o
     set status [remote_exec build cmp "${src1} ${src2}"]
     set exec_output [lindex $status 1]
@@ -72,13 +84,13 @@ if ![string match "" $got] then {
 }
 
 set testname "objcopy decompress compressed debug sections"
-set got [binutils_run $OBJCOPY "--decompress-debug-sections $compressedfile ${copyfile}.o"]
+set got [binutils_run $OBJCOPY "--decompress-debug-sections ${compressedfile}.o ${copyfile}.o"]
 if ![string match "" $got] then {
     fail "objcopy ($testname)"
 } else {
-    send_log "cmp $testfile ${copyfile}.o\n"
-    verbose "cmp $testfile ${copyfile}.o"
-    set src1 ${testfile}
+    send_log "cmp ${testfile}.o ${copyfile}.o\n"
+    verbose "cmp ${testfile}.o ${copyfile}.o"
+    set src1 ${testfile}.o
     set src2 ${copyfile}.o
     set status [remote_exec build cmp "${src1} ${src2}"]
     set exec_output [lindex $status 1]
@@ -94,7 +106,7 @@ if ![string match "" $got] then {
 }
 
 set testname "objcopy decompress debug sections in archive"
-set got [binutils_run $OBJCOPY "--decompress-debug-sections $libfile ${copyfile}.a"]
+set got [binutils_run $OBJCOPY "--decompress-debug-sections ${libfile}.a ${copyfile}.a"]
 if ![string match "" $got] then {
     fail "objcopy ($testname)"
 } else {
@@ -134,7 +146,7 @@ if ![string match "" $got] then {
 }
 
 set testname "objdump compress debug sections"
-set got [remote_exec host "$OBJDUMP -W $compressedfile" "" "/dev/null" "objdump.out"]
+set got [remote_exec host "$OBJDUMP -W ${compressedfile}.o" "" "/dev/null" "objdump.out"]
 if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
     fail "$testname"
     send_log "$got\n"
@@ -145,22 +157,32 @@ if { [regexp_diff objdump.out $srcdir/$subdir/dw2-1.W] } then {
     pass "$testname"
 }
 
-set testfile tmpdir/dw2-emty.o
+set testname "objdump compress debug sections 3"
+set got [remote_exec host "$OBJDUMP -W ${compressedfile3}.o" "" "/dev/null" "objdump.out"]
+if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+    fail "$testname"
+    send_log "$got\n"
+}
+if { [regexp_diff objdump.out $srcdir/$subdir/dw2-3.W] } then {
+    fail "$testname"
+} else {
+    pass "$testname"
+}
 
-if { ![binutils_assemble_flags $srcdir/$subdir/dw2-empty.S $testfile --nocompress-debug-sections] } then {
+if { ![binutils_assemble_flags $srcdir/$subdir/dw2-empty.S ${testfile}empty.o --nocompress-debug-sections] } then {
     unsupported "compressed debug sections"
     return
 }
 
 set testname "objcopy compress empty debug sections"
-set got [binutils_run $OBJCOPY "--compress-debug-sections $testfile ${copyfile}.o"]
+set got [binutils_run $OBJCOPY "--compress-debug-sections ${testfile}empty.o ${copyfile}empty.o"]
 if ![string match "" $got] then {
     fail "objcopy ($testname)"
 } else {
-    send_log "cmp $testfile ${copyfile}.o\n"
-    verbose "cmp $testfile ${copyfile}.o"
-    set src1 ${testfile}
-    set src2 ${copyfile}.o
+    send_log "cmp ${testfile}empty.o ${copyfile}empty.o\n"
+    verbose "cmp ${testfile}empty.o ${copyfile}empty.o"
+    set src1 ${testfile}empty.o
+    set src2 ${copyfile}empty.o
     set status [remote_exec build cmp "${src1} ${src2}"]
     set exec_output [lindex $status 1]
     set exec_output [prune_warnings $exec_output]
diff --git a/binutils/testsuite/binutils-all/dw2-3.S b/binutils/testsuite/binutils-all/dw2-3.S
new file mode 100644
index 0000000..c033e4d
--- /dev/null
+++ b/binutils/testsuite/binutils-all/dw2-3.S
@@ -0,0 +1,316 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2004-2015 Free Software Foundation, Inc.
+
+   This program 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.
+
+   This program 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/>.  */
+
+/* Test a minimal file containing DWARF-2 information.  This test also
+   serves as a skeleton for other DWARF-2 tests.  Most other tests will
+   not be this extensively itemized and commented...  */
+
+/* Dummy function to provide debug information for.  */
+
+	.text
+.Lbegin_text1:
+	.globl func_cu1
+	.type func_cu1, %function
+func_cu1:
+.Lbegin_func_cu1:
+	.int 0
+.Lend_func_cu1:
+	.size func_cu1, .-func_cu1
+.Lend_text1:
+
+/* Debug information */
+
+	.section .debug_info
+.Lcu1_begin:
+	/* CU header */
+	.4byte	.Lcu1_end - .Lcu1_start		/* Length of Compilation Unit */
+.Lcu1_start:
+	.2byte	2				/* DWARF Version */
+	.4byte	.Labbrev1_begin			/* Offset into abbrev section */
+	.byte	4				/* Pointer size */
+
+	/* CU die */
+	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
+	.4byte	.Lline1_begin			/* DW_AT_stmt_list */
+	.4byte	.Lend_text1			/* DW_AT_high_pc */
+	.4byte	.Lbegin_text1			/* DW_AT_low_pc */
+	.ascii	"file1.txt\0"			/* DW_AT_name */
+	.ascii	"GNU C 3.3.3\0"			/* DW_AT_producer */
+	.byte	1				/* DW_AT_language (C) */
+
+	/* func_cu1 */
+	.uleb128	2			/* Abbrev: DW_TAG_subprogram */
+	.byte		1			/* DW_AT_external */
+	.byte		1			/* DW_AT_decl_file */
+	.byte		2			/* DW_AT_decl_line */
+	.ascii		"func_cu1\0"		/* DW_AT_name */
+	.4byte		.Ltype_int2_in_cu2	/* DW_AT_type */
+	.4byte		.Lbegin_func_cu1	/* DW_AT_low_pc */
+	.4byte		.Lend_func_cu1		/* DW_AT_high_pc */
+	.byte		1			/* DW_AT_frame_base: length */
+	.byte		0x55			/* DW_AT_frame_base: DW_OP_reg5 */
+
+	/* This type is named "int1" and not "int" to ensure it is unique,
+	   and thus we can easily ensure we expand this CU and not some
+	   other CU with "int".  */
+.Ltype_int1_in_cu1:
+	.uleb128	3			/* Abbrev: DW_TAG_base_type */
+	.ascii		"int1\0"		/* DW_AT_name */
+	.byte		4			/* DW_AT_byte_size */
+	.byte		5			/* DW_AT_encoding */
+
+.Ltype_const_int1_in_cu1:
+	.uleb128	4			/* Abbrev: DW_TAG_const_type */
+	.4byte		 .Ltype_int1_in_cu1-.Lcu1_begin /* DW_AT_type */
+
+	.uleb128	5			/* Abbrev: DW_TAG_variable */
+	.ascii		"one\0"			/* DW_AT_name */
+	.4byte		.Ltype_const_int1_in_cu1-.Lcu1_begin   /* DW_AT_type */
+	.byte		1			/* DW_AT_const_value */
+
+	.byte		0			/* End of children of CU */
+
+.Lcu1_end:
+
+	/* Second compilation unit.  */
+.Lcu2_begin:
+	/* CU header */
+	.4byte	.Lcu2_end - .Lcu2_start		/* Length of Compilation Unit */
+.Lcu2_start:
+	.2byte	2				/* DWARF Version */
+	.4byte	.Labbrev2_begin			/* Offset into abbrev section */
+	.byte	4				/* Pointer size */
+
+	/* CU die */
+	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
+	.ascii	"file1.txt\0"			/* DW_AT_name */
+	.ascii	"GNU C 3.3.3\0"			/* DW_AT_producer */
+	.byte	1				/* DW_AT_language (C) */
+
+	/* This type is named "int2" and not "int" to ensure it is unique,
+	   and thus we can easily ensure we expand this CU and not some
+	   other CU with "int".  */
+.Ltype_int2_in_cu2:
+	.uleb128	2			/* Abbrev: DW_TAG_base_type */
+	.ascii		"int2\0"		/* DW_AT_name */
+	.byte		4			/* DW_AT_byte_size */
+	.byte		5			/* DW_AT_encoding */
+
+.Ltype_const_int2_in_cu2:
+	.uleb128	3			/* Abbrev: DW_TAG_const_type */
+	.4byte		 .Ltype_int2_in_cu2-.Lcu2_begin /* DW_AT_type */
+
+	.uleb128	4			/* Abbrev: DW_TAG_variable */
+	.ascii		"two\0"			/* DW_AT_name */
+	.4byte		.Ltype_const_int2_in_cu2-.Lcu2_begin   /* DW_AT_type */
+	.byte		2			/* DW_AT_const_value */
+
+	.byte		0			/* End of children of CU */
+
+.Lcu2_end:
+
+/* Abbrev table */
+	.section .debug_abbrev
+.Labbrev1_begin:
+	.uleb128	1			/* Abbrev code */
+	.uleb128	0x11			/* DW_TAG_compile_unit */
+	.byte		1			/* has_children */
+	.uleb128	0x10			/* DW_AT_stmt_list */
+	.uleb128	0x6			/* DW_FORM_data4 */
+	.uleb128	0x12			/* DW_AT_high_pc */
+	.uleb128	0x1			/* DW_FORM_addr */
+	.uleb128	0x11			/* DW_AT_low_pc */
+	.uleb128	0x1			/* DW_FORM_addr */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x25			/* DW_AT_producer */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x13			/* DW_AT_language */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	2			/* Abbrev code */
+	.uleb128	0x2e			/* DW_TAG_subprogram */
+	.byte		0			/* has_children */
+	.uleb128	0x3f			/* DW_AT_external */
+	.uleb128	0xc			/* DW_FORM_flag */
+	.uleb128	0x3a			/* DW_AT_decl_file */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.uleb128	0x3b			/* DW_AT_decl_line */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x49			/* DW_AT_type */
+	.uleb128	0x10			/* DW_FORM_ref_addr */
+	.uleb128	0x11			/* DW_AT_low_pc */
+	.uleb128	0x1			/* DW_FORM_addr */
+	.uleb128	0x12			/* DW_AT_high_pc */
+	.uleb128	0x1			/* DW_FORM_addr */
+	.uleb128	0x40			/* DW_AT_frame_base */
+	.uleb128	0xa			/* DW_FORM_block1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	3			/* Abbrev code */
+	.uleb128	0x24			/* DW_TAG_base_type */
+	.byte		0			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0xb			/* DW_AT_byte_size */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.uleb128	0x3e			/* DW_AT_encoding */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	4			/* Abbrev code */
+	.uleb128	0x26			/* DW_TAG_const_type */
+	.byte		0x0			/* DW_children_no */
+	.uleb128	0x49			/* DW_AT_type */
+	.uleb128	0x13			/* DW_FORM_ref4 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	5			/* Abbrev code */
+	.uleb128	0x34			/* DW_TAG_variable */
+	.byte		0x0			/* DW_children_no */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x49			/* DW_AT_type */
+	.uleb128	0x13			/* DW_FORM_ref4 */
+	.uleb128	0x1c			/* DW_AT_const_value */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+.Labbrev2_begin:
+	.uleb128	1			/* Abbrev code */
+	.uleb128	0x11			/* DW_TAG_compile_unit */
+	.byte		1			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x25			/* DW_AT_producer */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x13			/* DW_AT_language */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	2			/* Abbrev code */
+	.uleb128	0x24			/* DW_TAG_base_type */
+	.byte		0			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0xb			/* DW_AT_byte_size */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.uleb128	0x3e			/* DW_AT_encoding */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	3			/* Abbrev code */
+	.uleb128	0x26			/* DW_TAG_const_type */
+	.byte		0x0			/* DW_children_no */
+	.uleb128	0x49			/* DW_AT_type */
+	.uleb128	0x13			/* DW_FORM_ref4 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	4			/* Abbrev code */
+	.uleb128	0x34			/* DW_TAG_variable */
+	.byte		0x0			/* DW_children_no */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x49			/* DW_AT_type */
+	.uleb128	0x13			/* DW_FORM_ref4 */
+	.uleb128	0x1c			/* DW_AT_const_value */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+/* Line table */
+	.section .debug_line
+.Lline1_begin:
+	.4byte		.Lline1_end - .Lline1_start	/* Initial length */
+.Lline1_start:
+	.2byte		2			/* Version */
+	.4byte		.Lline1_lines - .Lline1_hdr	/* header_length */
+.Lline1_hdr:
+	.byte		1			/* Minimum insn length */
+	.byte		1			/* default_is_stmt */
+	.byte		1			/* line_base */
+ 	.byte		1			/* line_range */
+	.byte		0x10			/* opcode_base */
+
+	/* Standard lengths */
+	.byte		0
+	.byte		1
+	.byte		1
+	.byte		1
+	.byte		1
+	.byte		0
+	.byte		0
+	.byte		0
+	.byte		1
+	.byte		0
+	.byte		0
+	.byte		1
+	.byte		0
+	.byte		0
+	.byte		0
+
+	/* Include directories */
+	.byte		0
+
+	/* File names */
+	.ascii		"file1.txt\0"
+	.uleb128	0
+	.uleb128	0
+	.uleb128	0
+
+	.byte		0
+
+.Lline1_lines:
+	.byte		0	/* DW_LNE_set_address */
+	.uleb128	5
+	.byte		2
+	.4byte		.Lbegin_func_cu1
+
+	.byte		3	/* DW_LNS_advance_line */
+	.sleb128	3	/* ... to 4 */
+
+	.byte		1	/* DW_LNS_copy */
+
+	.byte		1	/* DW_LNS_copy (second time as an end-of-prologue marker) */
+
+	.byte		0	/* DW_LNE_set_address */
+	.uleb128	5
+	.byte		2
+	.4byte		.Lend_func_cu1
+
+	.byte		0	/* DW_LNE_end_of_sequence */
+	.uleb128	1
+	.byte		1
+
+.Lline1_end:
diff --git a/binutils/testsuite/binutils-all/dw2-3.W b/binutils/testsuite/binutils-all/dw2-3.W
new file mode 100644
index 0000000..0d0fe6a
--- /dev/null
+++ b/binutils/testsuite/binutils-all/dw2-3.W
@@ -0,0 +1,156 @@
+
+.*: +file format .*
+
+Contents of the .debug_info section:
+
+  Compilation Unit @ offset 0x0:
+   Length:        0x5e \(32-bit\)
+   Version:       2
+   Abbrev Offset: 0x0
+   Pointer Size:  4
+ <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
+    <c>   DW_AT_stmt_list   : 0x0
+    <10>   DW_AT_high_pc     : 0x4
+    <14>   DW_AT_low_pc      : 0x0
+    <18>   DW_AT_name        : file1.txt
+    <22>   DW_AT_producer    : GNU C 3.3.3
+    <2e>   DW_AT_language    : 1	\(ANSI C\)
+ <1><2f>: Abbrev Number: 2 \(DW_TAG_subprogram\)
+    <30>   DW_AT_external    : 1
+    <31>   DW_AT_decl_file   : 1
+    <32>   DW_AT_decl_line   : 2
+    <33>   DW_AT_name        : func_cu1
+    <3c>   DW_AT_type        : <0x85>
+    <40>   DW_AT_low_pc      : 0x0
+    <44>   DW_AT_high_pc     : 0x4
+    <48>   DW_AT_frame_base  : 1 byte block: 55 	\(DW_OP_reg5 \([^()]*\)\)
+ <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
+    <4b>   DW_AT_name        : int1
+    <50>   DW_AT_byte_size   : 4
+    <51>   DW_AT_encoding    : 5	\(signed\)
+ <1><52>: Abbrev Number: 4 \(DW_TAG_const_type\)
+    <53>   DW_AT_type        : <0x4a>
+ <1><57>: Abbrev Number: 5 \(DW_TAG_variable\)
+    <58>   DW_AT_name        : one
+    <5c>   DW_AT_type        : <0x52>
+    <60>   DW_AT_const_value : 1
+ <1><61>: Abbrev Number: 0
+  Compilation Unit @ offset 0x62:
+   Length:        0x37 \(32-bit\)
+   Version:       2
+   Abbrev Offset: 0x45
+   Pointer Size:  4
+ <0><6d>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
+    <6e>   DW_AT_name        : file1.txt
+    <78>   DW_AT_producer    : GNU C 3.3.3
+    <84>   DW_AT_language    : 1	\(ANSI C\)
+ <1><85>: Abbrev Number: 2 \(DW_TAG_base_type\)
+    <86>   DW_AT_name        : int2
+    <8b>   DW_AT_byte_size   : 4
+    <8c>   DW_AT_encoding    : 5	\(signed\)
+ <1><8d>: Abbrev Number: 3 \(DW_TAG_const_type\)
+    <8e>   DW_AT_type        : <0x85>
+ <1><92>: Abbrev Number: 4 \(DW_TAG_variable\)
+    <93>   DW_AT_name        : two
+    <97>   DW_AT_type        : <0x8d>
+    <9b>   DW_AT_const_value : 2
+ <1><9c>: Abbrev Number: 0
+
+Contents of the .debug_abbrev section:
+
+  Number TAG \(0x0\)
+   1      DW_TAG_compile_unit    \[has children\]
+    DW_AT_stmt_list    DW_FORM_data4
+    DW_AT_high_pc      DW_FORM_addr
+    DW_AT_low_pc       DW_FORM_addr
+    DW_AT_name         DW_FORM_string
+    DW_AT_producer     DW_FORM_string
+    DW_AT_language     DW_FORM_data1
+    DW_AT value: 0     DW_FORM value: 0
+   2      DW_TAG_subprogram    \[no children\]
+    DW_AT_external     DW_FORM_flag
+    DW_AT_decl_file    DW_FORM_data1
+    DW_AT_decl_line    DW_FORM_data1
+    DW_AT_name         DW_FORM_string
+    DW_AT_type         DW_FORM_ref_addr
+    DW_AT_low_pc       DW_FORM_addr
+    DW_AT_high_pc      DW_FORM_addr
+    DW_AT_frame_base   DW_FORM_block1
+    DW_AT value: 0     DW_FORM value: 0
+   3      DW_TAG_base_type    \[no children\]
+    DW_AT_name         DW_FORM_string
+    DW_AT_byte_size    DW_FORM_data1
+    DW_AT_encoding     DW_FORM_data1
+    DW_AT value: 0     DW_FORM value: 0
+   4      DW_TAG_const_type    \[no children\]
+    DW_AT_type         DW_FORM_ref4
+    DW_AT value: 0     DW_FORM value: 0
+   5      DW_TAG_variable    \[no children\]
+    DW_AT_name         DW_FORM_string
+    DW_AT_type         DW_FORM_ref4
+    DW_AT_const_value  DW_FORM_data1
+    DW_AT value: 0     DW_FORM value: 0
+  Number TAG \(0x45\)
+   1      DW_TAG_compile_unit    \[has children\]
+    DW_AT_name         DW_FORM_string
+    DW_AT_producer     DW_FORM_string
+    DW_AT_language     DW_FORM_data1
+    DW_AT value: 0     DW_FORM value: 0
+   2      DW_TAG_base_type    \[no children\]
+    DW_AT_name         DW_FORM_string
+    DW_AT_byte_size    DW_FORM_data1
+    DW_AT_encoding     DW_FORM_data1
+    DW_AT value: 0     DW_FORM value: 0
+   3      DW_TAG_const_type    \[no children\]
+    DW_AT_type         DW_FORM_ref4
+    DW_AT value: 0     DW_FORM value: 0
+   4      DW_TAG_variable    \[no children\]
+    DW_AT_name         DW_FORM_string
+    DW_AT_type         DW_FORM_ref4
+    DW_AT_const_value  DW_FORM_data1
+    DW_AT value: 0     DW_FORM value: 0
+
+Raw dump of debug contents of section .debug_line:
+
+  Offset:                      0x0
+  Length:                      62
+  DWARF Version:               2
+  Prologue Length:             35
+  Minimum Instruction Length:  1
+  Initial value of 'is_stmt':  1
+  Line Base:                   1
+  Line Range:                  1
+  Opcode Base:                 16
+
+ Opcodes:
+  Opcode 1 has 0 args
+  Opcode 2 has 1 args
+  Opcode 3 has 1 args
+  Opcode 4 has 1 args
+  Opcode 5 has 1 args
+  Opcode 6 has 0 args
+  Opcode 7 has 0 args
+  Opcode 8 has 0 args
+  Opcode 9 has 1 args
+  Opcode 10 has 0 args
+  Opcode 11 has 0 args
+  Opcode 12 has 1 args
+  Opcode 13 has 0 args
+  Opcode 14 has 0 args
+  Opcode 15 has 0 args
+
+ The Directory Table is empty.
+
+ The File Name Table \(offset 0x1f\):
+  Entry	Dir	Time	Size	Name
+  1	0	0	0	file1.txt
+
+ Line Number Statements:
+  \[0x0000002d\]  Extended opcode 2: set Address to 0x0
+  \[0x00000034\]  Advance Line by 3 to 4
+  \[0x00000036\]  Copy
+  \[0x00000037\]  Copy
+  \[0x00000038\]  Extended opcode 2: set Address to 0x4
+  \[0x0000003f\]  Extended opcode 1: End of Sequence
+
+
diff --git a/binutils/testsuite/binutils-all/libdw2-compressed.out b/binutils/testsuite/binutils-all/libdw2-compressed.out
index 6c1f7f5..ccee796 100644
--- a/binutils/testsuite/binutils-all/libdw2-compressed.out
+++ b/binutils/testsuite/binutils-all/libdw2-compressed.out
@@ -2,4 +2,6 @@
  .* ZLIB.*
 #...
  .* ZLIB.*
+#...
+ .* ZLIB.*
 #pass
diff --git a/binutils/testsuite/binutils-all/libdw2.out b/binutils/testsuite/binutils-all/libdw2.out
index 457774c..1255cf3 100644
--- a/binutils/testsuite/binutils-all/libdw2.out
+++ b/binutils/testsuite/binutils-all/libdw2.out
@@ -10,4 +10,10 @@
   \[[ 0-9]+\] \.debug_line[ 	]+(PROGBITS|MIPS_DWARF)[ 	0-9a-z]+ [^Z]*
 #...
   \[[ 0-9]+\] \.debug_abbrev[ 	]+(PROGBITS|MIPS_DWARF)[ 	0-9a-z]+ [^Z]*
+#...
+  \[[ 0-9]+\] \.debug_info[ 	]+(PROGBITS|MIPS_DWARF)[ 	0-9a-z]+ [^Z]*
+#...
+  \[[ 0-9]+\] \.debug_abbrev[ 	]+(PROGBITS|MIPS_DWARF)[ 	0-9a-z]+ [^Z]*
+#...
+  \[[ 0-9]+\] \.debug_line[ 	]+(PROGBITS|MIPS_DWARF)[ 	0-9a-z]+ [^Z]*
 #pass


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