Add an objdump test on compress debug sections
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 20 Oct 2012 22:14:08 +0000 (22:14 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 20 Oct 2012 22:14:08 +0000 (22:14 +0000)
* binutils-all/compress.exp: Add an objdump test.
* binutils-all/dw2-1.W: New file.

binutils/testsuite/ChangeLog
binutils/testsuite/binutils-all/compress.exp
binutils/testsuite/binutils-all/dw2-1.W [new file with mode: 0644]

index 276f0cf41ac71aa85b090c51ec42839802517b99..06dae333b7f593a87ea18f1004889e053d910d87 100644 (file)
@@ -1,3 +1,8 @@
+2012-10-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * binutils-all/compress.exp: Add an objdump test.
+       * binutils-all/dw2-1.W: New file.
+
 2012-08-17  H.J. Lu  <hongjiu.lu@intel.com>
 
        * binutils-all/ar.exp (long_filenames): Remove extra verbose
        (thin_archive_with_nested): Likewise.
 
 2012-08-13  Ian Bolton  <ian.bolton@arm.com>
-            Laurent Desnogues  <laurent.desnogues@arm.com>
-            Jim MacArthur  <jim.macarthur@arm.com>
-            Marcus Shawcroft  <marcus.shawcroft@arm.com>
-            Nigel Stephens  <nigel.stephens@arm.com>
-            Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
-            Richard Earnshaw  <rearnsha@arm.com>
-            Sofiane Naci  <sofiane.naci@arm.com>
-            Tejas Belagod  <tejas.belagod@arm.com>
-            Yufeng Zhang  <yufeng.zhang@arm.com>
+           Laurent Desnogues  <laurent.desnogues@arm.com>
+           Jim MacArthur  <jim.macarthur@arm.com>
+           Marcus Shawcroft  <marcus.shawcroft@arm.com>
+           Nigel Stephens  <nigel.stephens@arm.com>
+           Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+           Richard Earnshaw  <rearnsha@arm.com>
+           Sofiane Naci  <sofiane.naci@arm.com>
+           Tejas Belagod  <tejas.belagod@arm.com>
+           Yufeng Zhang  <yufeng.zhang@arm.com>
 
        * objdump.exp: Add AArch64.
 
index 3b0b48563f7177130cb7bf14d852b0ffc378f269..420794bb14d2679b8942ebacafce3fdd808d7e16 100644 (file)
@@ -134,6 +134,18 @@ if ![string match "" $got] then {
     }
 }
 
+set testname "objdump compress debug sections"
+set got [remote_exec host "$OBJDUMP -W $compressedfile" "" "/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-1.W] } then {
+    fail "$testname"
+} else {
+    pass "$testname"
+}
+
 set testfile tmpdir/dw2-emty.o
 
 if { ![binutils_assemble_flags $srcdir/$subdir/dw2-empty.S $testfile --nocompress-debug-sections] } then {
diff --git a/binutils/testsuite/binutils-all/dw2-1.W b/binutils/testsuite/binutils-all/dw2-1.W
new file mode 100644 (file)
index 0000000..9b9c844
--- /dev/null
@@ -0,0 +1,104 @@
+
+.*dw2-1-compressed.o:     file format .*
+
+Contents of the .debug_info section:
+
+  Compilation Unit @ offset 0x0:
+   Length:        0x4e \(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     : 0x8     
+    <14>   DW_AT_low_pc      : 0x4     
+    <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        : <0x4a>  
+    <40>   DW_AT_low_pc      : 0x4     
+    <44>   DW_AT_high_pc     : 0x8     
+    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5 \(rdi\)\)
+ <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
+    <4b>   DW_AT_name        : int     
+    <4f>   DW_AT_byte_size   : 4       
+    <50>   DW_AT_encoding    : 5       \(signed\)
+ <1><51>: Abbrev Number: 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:
+  Entry        Dir     Time    Size    Name
+  1    0       0       0       file1.txt
+
+ Line Number Statements:
+  Extended opcode 2: set Address to 0x4
+  Advance Line by 3 to 4
+  Copy
+  Copy
+  Extended opcode 2: set Address to 0x8
+  Extended opcode 1: End of Sequence
+
+
+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_ref4
+    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
+
+#pass