public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
@ 2013-07-22  3:16 Omair Javaid
  2013-07-22 16:06 ` Tom Tromey
  0 siblings, 1 reply; 12+ messages in thread
From: Omair Javaid @ 2013-07-22  3:16 UTC (permalink / raw)
  To: gdb-patches; +Cc: patches

dw2-error.exp is not run for arm targets because this test has been
written in x86 assembly language. This patch adds ARM version of
assembly code required to run dw2-error.exp tests on arm targets.
Attached patch is tested on ARMv7 and x86_64 targets.

gdb/testsuite/ChangeLog:

2013-07-22  Omair Javaid  <Omair.Javaid@linaro.org>

        * gdb.dwarf2/dw2-error.S: Adding ARM assembly code.

Index: gdb/testsuite/gdb.dwarf2/dw2-error.S
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/dw2-error.S,v
retrieving revision 1.2
diff -u -p -r1.2 dw2-error.S
--- gdb/testsuite/gdb.dwarf2/dw2-error.S 12 Feb 2013 18:27:29 -0000 1.2
+++ gdb/testsuite/gdb.dwarf2/dw2-error.S 22 Jul 2013 02:57:06 -0000
@@ -18,6 +18,8 @@

   */

+#ifndef __arm__
+
  .file "dw2-error.c"
  .text
 .Ltext0:
@@ -158,3 +160,177 @@ main:
  .string "dw2-error.c"
  .ident "GCC: (GNU) 4.6.3 20120306 (Red Hat 4.6.3-2)"
  .section .note.GNU-stack,"",@progbits
+
+#else
+
+ .file "dw2-error.c"
+ .text
+.Ltext0:
+ .cfi_sections .debug_frame
+ .align 2
+ .global main
+ .type main, %function
+main:
+.LFB0:
+ .file 1 "dw2-error.c"
+ @ dw2-error.c:19
+ .loc 1 19 0
+ .cfi_startproc
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 1, uses_anonymous_args = 0
+ @ link register save eliminated.
+@ BLOCK 2 seq:0
+@ PRED: ENTRY (fallthru)
+ str fp, [sp, #-4]!
+.LCFI0:
+ .cfi_def_cfa_offset 4
+ .cfi_offset 11, -4
+ add fp, sp, #0
+.LCFI1:
+ .cfi_def_cfa_register 11
+ @ dw2-error.c:20
+ .loc 1 20 0
+ mov r3, #23
+ @ dw2-error.c:21
+ .loc 1 21 0
+ mov r0, r3
+@ SUCC: EXIT [100.0%]
+ add sp, fp, #0
+ ldmfd sp!, {fp}
+ bx lr
+ .cfi_endproc
+.LFE0:
+ .size main, .-main
+.Letext0:
+ .section .debug_info,"",%progbits
+.Ldebug_info0:
+ .4byte 0x42 @ Length of Compilation Unit Info
+ .2byte 0x99 @ DWARF version number
+ .4byte .Ldebug_abbrev0 @ Offset Into Abbrev. Section
+ .byte 0x4 @ Pointer Size (in bytes)
+ .uleb128 0x1 @ (DIE (0xb) DW_TAG_compile_unit)
+ .4byte .LASF0 @ DW_AT_producer: "GNU C 4.7.3"
+ .byte 0x1 @ DW_AT_language
+ .4byte .LASF1 @ DW_AT_name: "dw2-error.c"
+ .4byte .LASF2 @ DW_AT_comp_dir: "/tmp"
+ .4byte .Ltext0 @ DW_AT_low_pc
+ .4byte .Letext0 @ DW_AT_high_pc
+ .4byte .Ldebug_line0 @ DW_AT_stmt_list
+ .uleb128 0x2 @ (DIE (0x25) DW_TAG_subprogram)
+ .byte 0x1 @ DW_AT_external
+ .4byte .LASF3 @ DW_AT_name: "main"
+ .byte 0x1 @ DW_AT_decl_file (dw2-error.c)
+ .byte 0x12 @ DW_AT_decl_line
+ .4byte 0x3e @ DW_AT_type
+ .4byte .LFB0 @ DW_AT_low_pc
+ .4byte .LFE0 @ DW_AT_high_pc
+ .4byte .LLST0 @ DW_AT_frame_base
+ .byte 0x1 @ DW_AT_GNU_all_call_sites
+ .uleb128 0x3 @ (DIE (0x3e) DW_TAG_base_type)
+ .byte 0x4 @ DW_AT_byte_size
+ .byte 0x5 @ DW_AT_encoding
+ .ascii "int\0" @ DW_AT_name
+ .byte 0 @ end of children of DIE 0xb
+ .section .debug_abbrev,"",%progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 @ (abbrev code)
+ .uleb128 0x11 @ (TAG: DW_TAG_compile_unit)
+ .byte 0x1 @ DW_children_yes
+ .uleb128 0x25 @ (DW_AT_producer)
+ .uleb128 0xe @ (DW_FORM_strp)
+ .uleb128 0x13 @ (DW_AT_language)
+ .uleb128 0xb @ (DW_FORM_data1)
+ .uleb128 0x3 @ (DW_AT_name)
+ .uleb128 0xe @ (DW_FORM_strp)
+ .uleb128 0x1b @ (DW_AT_comp_dir)
+ .uleb128 0xe @ (DW_FORM_strp)
+ .uleb128 0x11 @ (DW_AT_low_pc)
+ .uleb128 0x1 @ (DW_FORM_addr)
+ .uleb128 0x12 @ (DW_AT_high_pc)
+ .uleb128 0x1 @ (DW_FORM_addr)
+ .uleb128 0x10 @ (DW_AT_stmt_list)
+ .uleb128 0x6 @ (DW_FORM_data4)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 @ (abbrev code)
+ .uleb128 0x2e @ (TAG: DW_TAG_subprogram)
+ .byte 0 @ DW_children_no
+ .uleb128 0x3f @ (DW_AT_external)
+ .uleb128 0xc @ (DW_FORM_flag)
+ .uleb128 0x3 @ (DW_AT_name)
+ .uleb128 0xe @ (DW_FORM_strp)
+ .uleb128 0x3a @ (DW_AT_decl_file)
+ .uleb128 0xb @ (DW_FORM_data1)
+ .uleb128 0x3b @ (DW_AT_decl_line)
+ .uleb128 0xb @ (DW_FORM_data1)
+ .uleb128 0x49 @ (DW_AT_type)
+ .uleb128 0x13 @ (DW_FORM_ref4)
+ .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 0x6 @ (DW_FORM_data4)
+ .uleb128 0x2117 @ (DW_AT_GNU_all_call_sites)
+ .uleb128 0xc @ (DW_FORM_flag)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 @ (abbrev code)
+ .uleb128 0x24 @ (TAG: DW_TAG_base_type)
+ .byte 0 @ DW_children_no
+ .uleb128 0xb @ (DW_AT_byte_size)
+ .uleb128 0xb @ (DW_FORM_data1)
+ .uleb128 0x3e @ (DW_AT_encoding)
+ .uleb128 0xb @ (DW_FORM_data1)
+ .uleb128 0x3 @ (DW_AT_name)
+ .uleb128 0x8 @ (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loc,"",%progbits
+.Ldebug_loc0:
+.LLST0:
+ .4byte .LFB0-.Ltext0 @ Location list begin address (*.LLST0)
+ .4byte .LCFI0-.Ltext0 @ Location list end address (*.LLST0)
+ .2byte 0x2 @ Location expression size
+ .byte 0x7d @ DW_OP_breg13
+ .sleb128 0
+ .4byte .LCFI0-.Ltext0 @ Location list begin address (*.LLST0)
+ .4byte .LCFI1-.Ltext0 @ Location list end address (*.LLST0)
+ .2byte 0x2 @ Location expression size
+ .byte 0x7d @ DW_OP_breg13
+ .sleb128 4
+ .4byte .LCFI1-.Ltext0 @ Location list begin address (*.LLST0)
+ .4byte .LFE0-.Ltext0 @ Location list end address (*.LLST0)
+ .2byte 0x2 @ Location expression size
+ .byte 0x7b @ DW_OP_breg11
+ .sleb128 4
+ .4byte 0 @ Location list terminator begin (*.LLST0)
+ .4byte 0 @ Location list terminator end (*.LLST0)
+ .section .debug_aranges,"",%progbits
+ .4byte 0x1c @ Length of Address Ranges Info
+ .2byte 0x2 @ DWARF Version
+ .4byte .Ldebug_info0 @ Offset of Compilation Unit Info
+ .byte 0x4 @ Size of Address
+ .byte 0 @ Size of Segment Descriptor
+ .2byte 0 @ Pad to 8 byte boundary
+ .2byte 0
+ .4byte .Ltext0 @ Address
+ .4byte .Letext0-.Ltext0 @ Length
+ .4byte 0
+ .4byte 0
+ .section .debug_line,"",%progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",%progbits,1
+.LASF0:
+ .ascii "GNU C 4.7.3\000"
+.LASF2:
+ .ascii "/tmp\000"
+.LASF3:
+ .ascii "main\000"
+.LASF1:
+ .ascii "dw2-error.c\000"
+ .ident "GCC: (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3"
+ .section .note.GNU-stack,"",%progbits
+
+#endif

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-07-22  3:16 [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets Omair Javaid
@ 2013-07-22 16:06 ` Tom Tromey
  2013-09-19 15:11   ` Omair Javaid
  0 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2013-07-22 16:06 UTC (permalink / raw)
  To: Omair Javaid; +Cc: gdb-patches, patches

>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:

Omair> dw2-error.exp is not run for arm targets because this test has been
Omair> written in x86 assembly language. This patch adds ARM version of
Omair> assembly code required to run dw2-error.exp tests on arm targets.
Omair> Attached patch is tested on ARMv7 and x86_64 targets.


Omair> 2013-07-22  Omair Javaid  <Omair.Javaid@linaro.org>

Omair>         * gdb.dwarf2/dw2-error.S: Adding ARM assembly code.

I think it would be just as easy to change this test to use the DWARF
assembler (which didn't exist when the test was first written).  Then
the test case could work on any arch.

Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-07-22 16:06 ` Tom Tromey
@ 2013-09-19 15:11   ` Omair Javaid
  2013-09-19 18:37     ` Tom Tromey
  0 siblings, 1 reply; 12+ messages in thread
From: Omair Javaid @ 2013-09-19 15:11 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches, Patch Tracking

Hello Tom,

Thanks for your feedback.

Can you kindly direct me to DWARF assembler and how can I use to write
the above testcase.

Thankks for your help..

--
Omair.

On 22 July 2013 17:06, Tom Tromey <tromey@redhat.com> wrote:
>>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:
>
> Omair> dw2-error.exp is not run for arm targets because this test has been
> Omair> written in x86 assembly language. This patch adds ARM version of
> Omair> assembly code required to run dw2-error.exp tests on arm targets.
> Omair> Attached patch is tested on ARMv7 and x86_64 targets.
>
>
> Omair> 2013-07-22  Omair Javaid  <Omair.Javaid@linaro.org>
>
> Omair>         * gdb.dwarf2/dw2-error.S: Adding ARM assembly code.
>
> I think it would be just as easy to change this test to use the DWARF
> assembler (which didn't exist when the test was first written).  Then
> the test case could work on any arch.
>
> Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-09-19 15:11   ` Omair Javaid
@ 2013-09-19 18:37     ` Tom Tromey
  2013-09-26 11:13       ` Omair Javaid
  0 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2013-09-19 18:37 UTC (permalink / raw)
  To: Omair Javaid; +Cc: gdb-patches, Patch Tracking

>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:

Omair> Can you kindly direct me to DWARF assembler and how can I use to write
Omair> the above testcase.

The DWARF assembler is in gdb/testsuite/lib/dwarf.exp.
It has a large comment that explains most of how to use it;
plus a few specific comments next to some exported procs.
Search gdb.dwarf2 for Dwarf::assemble for some examples.

In this case I think the test case is just testing that gdb reacts
properly when the DWARF has an invalid version.  This is simple to do
with the assembler; just pass something unusual to the "cu" proc.

Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-09-19 18:37     ` Tom Tromey
@ 2013-09-26 11:13       ` Omair Javaid
  2013-09-27 19:56         ` Tom Tromey
  0 siblings, 1 reply; 12+ messages in thread
From: Omair Javaid @ 2013-09-26 11:13 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches, Patch Tracking

dw2-error.exp tests dwarf debug information version and passes if a
valid version is found. Its not run for arm targets because this test
has been written in x86 assembly language. A patch was submitted
adding debug information written with arm assembly in dw2-error.2.
Upstream suggestion was to re-write the test using dwarf assembler in
order to make it architecture independent. This patch implements
dw2-error.exp using dwarf assembler and removes dw2-error.S which is
now redundant as every time test runs new dw2-error.S will be
generated by dwarf assembler according to host architecture. This
patch has been tested on x86_64 and arm machines.

gdb/testsuite/ChangeLog:

2013-09-26  Omair Javaid  <Omair.Javaid@linaro.org>

        * gdb.dwarf2/dw2-error.exp: Re-written using dwarf assembler
        * gdb.dwarf2/dw2-error.S: Delete


 gdb/testsuite/gdb.dwarf2/dw2-error.S   |  160 --------------------------------
 gdb/testsuite/gdb.dwarf2/dw2-error.exp |   27 +++++-
 2 files changed, 23 insertions(+), 164 deletions(-)
 delete mode 100644 gdb/testsuite/gdb.dwarf2/dw2-error.S

diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.S
b/gdb/testsuite/gdb.dwarf2/dw2-error.S
deleted file mode 100644
index 597753e..0000000
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.S
+++ /dev/null
@@ -1,160 +0,0 @@
-/* Copyright (C) 2012-2013 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/>.
-
-   This was created using gcc -g -dA dw2-error.c, then hand-editing
-   it to change the DWARF version.
-
-  */
-
- .file "dw2-error.c"
- .text
-.Ltext0:
- .globl main
- .type main, @function
-main:
-.LFB0:
- .file 1 "dw2-error.c"
- # dw2-error.c:19
- .loc 1 19 0
- .cfi_startproc
- # basic block 2
- pushq %rbp
- .cfi_def_cfa_offset 16
- .cfi_offset 6, -16
- movq %rsp, %rbp
- .cfi_def_cfa_register 6
- # dw2-error.c:20
- .loc 1 20 0
- movl $23, %eax
- # dw2-error.c:21
- .loc 1 21 0
- popq %rbp
- .cfi_def_cfa 7, 8
- ret
- .cfi_endproc
-.LFE0:
- .size main, .-main
-.Letext0:
- .section .debug_info,"",@progbits
-.Ldebug_info0:
- .long 0x4e # Length of Compilation Unit Info
- .value 0x99 # DWARF version number
- .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
- .byte 0x8 # Pointer Size (in bytes)
- .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
- .long .LASF0 # DW_AT_producer: "GNU C 4.6.3 20120306 (Red Hat
4.6.3-2) -mtune=generic -march=x86-64 -g"
- .byte 0x1 # DW_AT_language
- .long .LASF1 # DW_AT_name: "dw2-error.c"
- .long .LASF2 # DW_AT_comp_dir: "/tmp"
- .quad .Ltext0 # DW_AT_low_pc
- .quad .Letext0 # DW_AT_high_pc
- .long .Ldebug_line0 # DW_AT_stmt_list
- .uleb128 0x2 # (DIE (0x2d) DW_TAG_subprogram)
- # DW_AT_external
- .long .LASF3 # DW_AT_name: "main"
- .byte 0x1 # DW_AT_decl_file (dw2-error.c)
- .byte 0x12 # DW_AT_decl_line
- .long 0x4a # DW_AT_type
- .quad .LFB0 # DW_AT_low_pc
- .quad .LFE0 # DW_AT_high_pc
- .uleb128 0x1 # DW_AT_frame_base
- .byte 0x9c # DW_OP_call_frame_cfa
- # DW_AT_GNU_all_call_sites
- .uleb128 0x3 # (DIE (0x4a) DW_TAG_base_type)
- .byte 0x4 # DW_AT_byte_size
- .byte 0x5 # DW_AT_encoding
- .ascii "int\0" # DW_AT_name
- .byte 0 # end of children of DIE 0xb
- .section .debug_abbrev,"",@progbits
-.Ldebug_abbrev0:
- .uleb128 0x1 # (abbrev code)
- .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
- .byte 0x1 # DW_children_yes
- .uleb128 0x25 # (DW_AT_producer)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x13 # (DW_AT_language)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3 # (DW_AT_name)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x1b # (DW_AT_comp_dir)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x11 # (DW_AT_low_pc)
- .uleb128 0x1 # (DW_FORM_addr)
- .uleb128 0x12 # (DW_AT_high_pc)
- .uleb128 0x1 # (DW_FORM_addr)
- .uleb128 0x10 # (DW_AT_stmt_list)
- .uleb128 0x17 # (DW_FORM_sec_offset)
- .byte 0
- .byte 0
- .uleb128 0x2 # (abbrev code)
- .uleb128 0x2e # (TAG: DW_TAG_subprogram)
- .byte 0 # DW_children_no
- .uleb128 0x3f # (DW_AT_external)
- .uleb128 0x19 # (DW_FORM_flag_present)
- .uleb128 0x3 # (DW_AT_name)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x3a # (DW_AT_decl_file)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3b # (DW_AT_decl_line)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x49 # (DW_AT_type)
- .uleb128 0x13 # (DW_FORM_ref4)
- .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 0x18 # (DW_FORM_exprloc)
- .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
- .uleb128 0x19 # (DW_FORM_flag_present)
- .byte 0
- .byte 0
- .uleb128 0x3 # (abbrev code)
- .uleb128 0x24 # (TAG: DW_TAG_base_type)
- .byte 0 # DW_children_no
- .uleb128 0xb # (DW_AT_byte_size)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3e # (DW_AT_encoding)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3 # (DW_AT_name)
- .uleb128 0x8 # (DW_FORM_string)
- .byte 0
- .byte 0
- .byte 0
- .section .debug_aranges,"",@progbits
- .long 0x2c # Length of Address Ranges Info
- .value 0x2 # DWARF Version
- .long .Ldebug_info0 # Offset of Compilation Unit Info
- .byte 0x8 # Size of Address
- .byte 0 # Size of Segment Descriptor
- .value 0 # Pad to 16 byte boundary
- .value 0
- .quad .Ltext0 # Address
- .quad .Letext0-.Ltext0 # Length
- .quad 0
- .quad 0
- .section .debug_line,"",@progbits
-.Ldebug_line0:
- .section .debug_str,"MS",@progbits,1
-.LASF0:
- .string "GNU C 4.6.3 20120306 (Red Hat 4.6.3-2) -mtune=generic
-march=x86-64 -g"
-.LASF2:
- .string "/tmp"
-.LASF3:
- .string "main"
-.LASF1:
- .string "dw2-error.c"
- .ident "GCC: (GNU) 4.6.3 20120306 (Red Hat 4.6.3-2)"
- .section .note.GNU-stack,"",@progbits
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.exp
b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
index d0baeea..36596d2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
@@ -20,14 +20,33 @@ if {![dwarf2_support]} {
     return 0
 }

-standard_testfile .S
+standard_testfile .c dw2-error.S

-# We can't use prepare_for_testing here because we need to check the
-# 'file' command's output.
-if {[build_executable $testfile.exp $testfile $srcfile {nodebug}]} {
+# Make some DWARF for the test.
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+
+    cu 0 153 8 {
+    compile_unit {{language @DW_LANG_C}}
+    }
+}
+
+if  {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \
+      object {nodebug}] != ""} {
+    return -1
+}
+
+if  {[gdb_compile $asm_file ${binfile}2.o object {nodebug}] != ""} {
     return -1
 }

+if  {[gdb_compile [list ${binfile}1.o ${binfile}2.o ] \
+      "${binfile}" executable {}] != ""} {
+    return -1
+}
+
+clean_restart ${testfile}
+
 gdb_exit
 gdb_start
 gdb_reinitialize_dir $srcdir/$subdir
--

On 19 September 2013 23:37, Tom Tromey <tromey@redhat.com> wrote:
>>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:
>
> Omair> Can you kindly direct me to DWARF assembler and how can I use to write
> Omair> the above testcase.
>
> The DWARF assembler is in gdb/testsuite/lib/dwarf.exp.
> It has a large comment that explains most of how to use it;
> plus a few specific comments next to some exported procs.
> Search gdb.dwarf2 for Dwarf::assemble for some examples.
>
> In this case I think the test case is just testing that gdb reacts
> properly when the DWARF has an invalid version.  This is simple to do
> with the assembler; just pass something unusual to the "cu" proc.
>
> Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-09-26 11:13       ` Omair Javaid
@ 2013-09-27 19:56         ` Tom Tromey
  2013-10-01  9:48           ` Omair Javaid
  0 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2013-09-27 19:56 UTC (permalink / raw)
  To: Omair Javaid; +Cc: gdb-patches, Patch Tracking

>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:

Omair> +    cu 0 153 8 {

"proc cu" was changed to take option-value pairs.
This is the old form, it won't do the right thing on trunk.

Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-09-27 19:56         ` Tom Tromey
@ 2013-10-01  9:48           ` Omair Javaid
  2013-10-01 10:05             ` Abid, Hafiz
  2013-10-01 15:19             ` Tom Tromey
  0 siblings, 2 replies; 12+ messages in thread
From: Omair Javaid @ 2013-10-01  9:48 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches, Patch Tracking

On 28 September 2013 00:56, Tom Tromey <tromey@redhat.com> wrote:
>>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:
>
> Omair> +    cu 0 153 8 {
>
> "proc cu" was changed to take option-value pairs.
> This is the old form, it won't do the right thing on trunk.
>
> Tom

I have updated cu definition and tested it with trunk. New patch is
posted below:

---
 gdb/testsuite/gdb.dwarf2/dw2-error.S   |  160 --------------------------------
 gdb/testsuite/gdb.dwarf2/dw2-error.exp |   27 +++++-
 2 files changed, 23 insertions(+), 164 deletions(-)
 delete mode 100644 gdb/testsuite/gdb.dwarf2/dw2-error.S

diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.S
b/gdb/testsuite/gdb.dwarf2/dw2-error.S
deleted file mode 100644
index 597753e..0000000
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.S
+++ /dev/null
@@ -1,160 +0,0 @@
-/* Copyright (C) 2012-2013 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/>.
-
-   This was created using gcc -g -dA dw2-error.c, then hand-editing
-   it to change the DWARF version.
-
-  */
-
- .file "dw2-error.c"
- .text
-.Ltext0:
- .globl main
- .type main, @function
-main:
-.LFB0:
- .file 1 "dw2-error.c"
- # dw2-error.c:19
- .loc 1 19 0
- .cfi_startproc
- # basic block 2
- pushq %rbp
- .cfi_def_cfa_offset 16
- .cfi_offset 6, -16
- movq %rsp, %rbp
- .cfi_def_cfa_register 6
- # dw2-error.c:20
- .loc 1 20 0
- movl $23, %eax
- # dw2-error.c:21
- .loc 1 21 0
- popq %rbp
- .cfi_def_cfa 7, 8
- ret
- .cfi_endproc
-.LFE0:
- .size main, .-main
-.Letext0:
- .section .debug_info,"",@progbits
-.Ldebug_info0:
- .long 0x4e # Length of Compilation Unit Info
- .value 0x99 # DWARF version number
- .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
- .byte 0x8 # Pointer Size (in bytes)
- .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
- .long .LASF0 # DW_AT_producer: "GNU C 4.6.3 20120306 (Red Hat
4.6.3-2) -mtune=generic -march=x86-64 -g"
- .byte 0x1 # DW_AT_language
- .long .LASF1 # DW_AT_name: "dw2-error.c"
- .long .LASF2 # DW_AT_comp_dir: "/tmp"
- .quad .Ltext0 # DW_AT_low_pc
- .quad .Letext0 # DW_AT_high_pc
- .long .Ldebug_line0 # DW_AT_stmt_list
- .uleb128 0x2 # (DIE (0x2d) DW_TAG_subprogram)
- # DW_AT_external
- .long .LASF3 # DW_AT_name: "main"
- .byte 0x1 # DW_AT_decl_file (dw2-error.c)
- .byte 0x12 # DW_AT_decl_line
- .long 0x4a # DW_AT_type
- .quad .LFB0 # DW_AT_low_pc
- .quad .LFE0 # DW_AT_high_pc
- .uleb128 0x1 # DW_AT_frame_base
- .byte 0x9c # DW_OP_call_frame_cfa
- # DW_AT_GNU_all_call_sites
- .uleb128 0x3 # (DIE (0x4a) DW_TAG_base_type)
- .byte 0x4 # DW_AT_byte_size
- .byte 0x5 # DW_AT_encoding
- .ascii "int\0" # DW_AT_name
- .byte 0 # end of children of DIE 0xb
- .section .debug_abbrev,"",@progbits
-.Ldebug_abbrev0:
- .uleb128 0x1 # (abbrev code)
- .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
- .byte 0x1 # DW_children_yes
- .uleb128 0x25 # (DW_AT_producer)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x13 # (DW_AT_language)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3 # (DW_AT_name)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x1b # (DW_AT_comp_dir)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x11 # (DW_AT_low_pc)
- .uleb128 0x1 # (DW_FORM_addr)
- .uleb128 0x12 # (DW_AT_high_pc)
- .uleb128 0x1 # (DW_FORM_addr)
- .uleb128 0x10 # (DW_AT_stmt_list)
- .uleb128 0x17 # (DW_FORM_sec_offset)
- .byte 0
- .byte 0
- .uleb128 0x2 # (abbrev code)
- .uleb128 0x2e # (TAG: DW_TAG_subprogram)
- .byte 0 # DW_children_no
- .uleb128 0x3f # (DW_AT_external)
- .uleb128 0x19 # (DW_FORM_flag_present)
- .uleb128 0x3 # (DW_AT_name)
- .uleb128 0xe # (DW_FORM_strp)
- .uleb128 0x3a # (DW_AT_decl_file)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3b # (DW_AT_decl_line)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x49 # (DW_AT_type)
- .uleb128 0x13 # (DW_FORM_ref4)
- .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 0x18 # (DW_FORM_exprloc)
- .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
- .uleb128 0x19 # (DW_FORM_flag_present)
- .byte 0
- .byte 0
- .uleb128 0x3 # (abbrev code)
- .uleb128 0x24 # (TAG: DW_TAG_base_type)
- .byte 0 # DW_children_no
- .uleb128 0xb # (DW_AT_byte_size)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3e # (DW_AT_encoding)
- .uleb128 0xb # (DW_FORM_data1)
- .uleb128 0x3 # (DW_AT_name)
- .uleb128 0x8 # (DW_FORM_string)
- .byte 0
- .byte 0
- .byte 0
- .section .debug_aranges,"",@progbits
- .long 0x2c # Length of Address Ranges Info
- .value 0x2 # DWARF Version
- .long .Ldebug_info0 # Offset of Compilation Unit Info
- .byte 0x8 # Size of Address
- .byte 0 # Size of Segment Descriptor
- .value 0 # Pad to 16 byte boundary
- .value 0
- .quad .Ltext0 # Address
- .quad .Letext0-.Ltext0 # Length
- .quad 0
- .quad 0
- .section .debug_line,"",@progbits
-.Ldebug_line0:
- .section .debug_str,"MS",@progbits,1
-.LASF0:
- .string "GNU C 4.6.3 20120306 (Red Hat 4.6.3-2) -mtune=generic
-march=x86-64 -g"
-.LASF2:
- .string "/tmp"
-.LASF3:
- .string "main"
-.LASF1:
- .string "dw2-error.c"
- .ident "GCC: (GNU) 4.6.3 20120306 (Red Hat 4.6.3-2)"
- .section .note.GNU-stack,"",@progbits
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.exp
b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
index d0baeea..a23aa33 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
@@ -20,14 +20,33 @@ if {![dwarf2_support]} {
     return 0
 }

-standard_testfile .S
+standard_testfile .c dw2-error.S

-# We can't use prepare_for_testing here because we need to check the
-# 'file' command's output.
-if {[build_executable $testfile.exp $testfile $srcfile {nodebug}]} {
+# Make some DWARF for the test.
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+
+    cu { version 153 } {
+    compile_unit {{language @DW_LANG_C}}
+    }
+}
+
+if  {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \
+      object {nodebug}] != ""} {
+    return -1
+}
+
+if  {[gdb_compile $asm_file ${binfile}2.o object {nodebug}] != ""} {
     return -1
 }

+if  {[gdb_compile [list ${binfile}1.o ${binfile}2.o ] \
+      "${binfile}" executable {}] != ""} {
+    return -1
+}
+
+clean_restart ${testfile}
+
 gdb_exit
 gdb_start
 gdb_reinitialize_dir $srcdir/$subdir
--

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-10-01  9:48           ` Omair Javaid
@ 2013-10-01 10:05             ` Abid, Hafiz
  2013-10-01 15:20               ` Tom Tromey
  2013-10-01 15:19             ` Tom Tromey
  1 sibling, 1 reply; 12+ messages in thread
From: Abid, Hafiz @ 2013-10-01 10:05 UTC (permalink / raw)
  To: Omair Javaid, Tom Tromey; +Cc: gdb-patches, Patch Tracking

> +if  {[gdb_compile [list ${binfile}1.o ${binfile}2.o ] \
> +      "${binfile}" executable {}] != ""} {
> +    return -1
> +}
> +
> +clean_restart ${testfile}
> +
>  gdb_exit
>  gdb_start
>  gdb_reinitialize_dir $srcdir/$subdir

This gdb_exit, gdb_start, gdb_reinitialize_dir sequence right after clean_restart tells me that perhaps one of them is redundant.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-10-01  9:48           ` Omair Javaid
  2013-10-01 10:05             ` Abid, Hafiz
@ 2013-10-01 15:19             ` Tom Tromey
  1 sibling, 0 replies; 12+ messages in thread
From: Tom Tromey @ 2013-10-01 15:19 UTC (permalink / raw)
  To: Omair Javaid; +Cc: gdb-patches, Patch Tracking

>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:

Omair> +    cu { version 153 } {
Omair> +    compile_unit {{language @DW_LANG_C}}
Omair> +    }

I think the "compile_unit" line is not properly indented.

Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-10-01 10:05             ` Abid, Hafiz
@ 2013-10-01 15:20               ` Tom Tromey
  2013-12-02 20:43                 ` Omair Javaid
  0 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2013-10-01 15:20 UTC (permalink / raw)
  To: Abid, Hafiz; +Cc: Omair Javaid, gdb-patches, Patch Tracking

>>>>> "Abid" == Abid, Hafiz <Hafiz_Abid@mentor.com> writes:

>> +if  {[gdb_compile [list ${binfile}1.o ${binfile}2.o ] \
>> +      "${binfile}" executable {}] != ""} {
>> +    return -1
>> +}
>> +
>> +clean_restart ${testfile}
>> +
>> gdb_exit
>> gdb_start
>> gdb_reinitialize_dir $srcdir/$subdir

Abid> This gdb_exit, gdb_start, gdb_reinitialize_dir sequence right after
Abid> clean_restart tells me that perhaps one of them is redundant.

Good catch.
Given the rest of the test I think the clean_restart is not needed.

Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-10-01 15:20               ` Tom Tromey
@ 2013-12-02 20:43                 ` Omair Javaid
  2013-12-03 20:37                   ` Tom Tromey
  0 siblings, 1 reply; 12+ messages in thread
From: Omair Javaid @ 2013-12-02 20:43 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches, Patch Tracking, Abid, Hafiz

On Tue 01 Oct 2013 08:20:01 PM PKT, Tom Tromey wrote:
>>>>>> "Abid" == Abid, Hafiz <Hafiz_Abid@mentor.com> writes:
>
>>> +if  {[gdb_compile [list ${binfile}1.o ${binfile}2.o ] \
>>> +      "${binfile}" executable {}] != ""} {
>>> +    return -1
>>> +}
>>> +
>>> +clean_restart ${testfile}
>>> +
>>> gdb_exit
>>> gdb_start
>>> gdb_reinitialize_dir $srcdir/$subdir
>
> Abid> This gdb_exit, gdb_start, gdb_reinitialize_dir sequence right after
> Abid> clean_restart tells me that perhaps one of them is redundant.
>
> Good catch.
> Given the rest of the test I think the clean_restart is not needed.
>
> Tom
>

Sorry about responding late. I have updated patch with suggested changes.

gdb/testsuite/ChangeLog:

2013-12-02  Omair Javaid  <Omair.Javaid@linaro.org>

        * gdb.dwarf2/dw2-error.exp: Re-written using dwarf assembler
        * gdb.dwarf2/dw2-error.S: Delete

---
 gdb/testsuite/gdb.dwarf2/dw2-error.S   | 181 ++++-----------------------------
 gdb/testsuite/gdb.dwarf2/dw2-error.exp |  25 ++++-
 2 files changed, 42 insertions(+), 164 deletions(-)

diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.S b/gdb/testsuite/gdb.dwarf2/dw2-error.S
index 597753e..3e8b74d 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-error.S
@@ -1,160 +1,21 @@
-/* Copyright (C) 2012-2013 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/>.
-
-   This was created using gcc -g -dA dw2-error.c, then hand-editing
-   it to change the DWARF version.
-
-  */
-
-	.file	"dw2-error.c"
-	.text
-.Ltext0:
-	.globl	main
-	.type	main, @function
-main:
-.LFB0:
-	.file 1 "dw2-error.c"
-	# dw2-error.c:19
-	.loc 1 19 0
-	.cfi_startproc
-	# basic block 2
-	pushq	%rbp
-	.cfi_def_cfa_offset 16
-	.cfi_offset 6, -16
-	movq	%rsp, %rbp
-	.cfi_def_cfa_register 6
-	# dw2-error.c:20
-	.loc 1 20 0
-	movl	$23, %eax
-	# dw2-error.c:21
-	.loc 1 21 0
-	popq	%rbp
-	.cfi_def_cfa 7, 8
-	ret
-	.cfi_endproc
-.LFE0:
-	.size	main, .-main
-.Letext0:
-	.section	.debug_info,"",@progbits
-.Ldebug_info0:
-	.long	0x4e	# Length of Compilation Unit Info
-	.value	0x99	# DWARF version number
-	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
-	.byte	0x8	# Pointer Size (in bytes)
-	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
-	.long	.LASF0	# DW_AT_producer: "GNU C 4.6.3 20120306 (Red Hat 4.6.3-2) -mtune=generic -march=x86-64 -g"
-	.byte	0x1	# DW_AT_language
-	.long	.LASF1	# DW_AT_name: "dw2-error.c"
-	.long	.LASF2	# DW_AT_comp_dir: "/tmp"
-	.quad	.Ltext0	# DW_AT_low_pc
-	.quad	.Letext0	# DW_AT_high_pc
-	.long	.Ldebug_line0	# DW_AT_stmt_list
-	.uleb128 0x2	# (DIE (0x2d) DW_TAG_subprogram)
-			# DW_AT_external
-	.long	.LASF3	# DW_AT_name: "main"
-	.byte	0x1	# DW_AT_decl_file (dw2-error.c)
-	.byte	0x12	# DW_AT_decl_line
-	.long	0x4a	# DW_AT_type
-	.quad	.LFB0	# DW_AT_low_pc
-	.quad	.LFE0	# DW_AT_high_pc
-	.uleb128 0x1	# DW_AT_frame_base
-	.byte	0x9c	# DW_OP_call_frame_cfa
-			# DW_AT_GNU_all_call_sites
-	.uleb128 0x3	# (DIE (0x4a) DW_TAG_base_type)
-	.byte	0x4	# DW_AT_byte_size
-	.byte	0x5	# DW_AT_encoding
-	.ascii "int\0"	# DW_AT_name
-	.byte	0	# end of children of DIE 0xb
-	.section	.debug_abbrev,"",@progbits
-.Ldebug_abbrev0:
-	.uleb128 0x1	# (abbrev code)
-	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
-	.byte	0x1	# DW_children_yes
-	.uleb128 0x25	# (DW_AT_producer)
-	.uleb128 0xe	# (DW_FORM_strp)
-	.uleb128 0x13	# (DW_AT_language)
-	.uleb128 0xb	# (DW_FORM_data1)
-	.uleb128 0x3	# (DW_AT_name)
-	.uleb128 0xe	# (DW_FORM_strp)
-	.uleb128 0x1b	# (DW_AT_comp_dir)
-	.uleb128 0xe	# (DW_FORM_strp)
-	.uleb128 0x11	# (DW_AT_low_pc)
-	.uleb128 0x1	# (DW_FORM_addr)
-	.uleb128 0x12	# (DW_AT_high_pc)
-	.uleb128 0x1	# (DW_FORM_addr)
-	.uleb128 0x10	# (DW_AT_stmt_list)
-	.uleb128 0x17	# (DW_FORM_sec_offset)
-	.byte	0
-	.byte	0
-	.uleb128 0x2	# (abbrev code)
-	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
-	.byte	0	# DW_children_no
-	.uleb128 0x3f	# (DW_AT_external)
-	.uleb128 0x19	# (DW_FORM_flag_present)
-	.uleb128 0x3	# (DW_AT_name)
-	.uleb128 0xe	# (DW_FORM_strp)
-	.uleb128 0x3a	# (DW_AT_decl_file)
-	.uleb128 0xb	# (DW_FORM_data1)
-	.uleb128 0x3b	# (DW_AT_decl_line)
-	.uleb128 0xb	# (DW_FORM_data1)
-	.uleb128 0x49	# (DW_AT_type)
-	.uleb128 0x13	# (DW_FORM_ref4)
-	.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 0x18	# (DW_FORM_exprloc)
-	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
-	.uleb128 0x19	# (DW_FORM_flag_present)
-	.byte	0
-	.byte	0
-	.uleb128 0x3	# (abbrev code)
-	.uleb128 0x24	# (TAG: DW_TAG_base_type)
-	.byte	0	# DW_children_no
-	.uleb128 0xb	# (DW_AT_byte_size)
-	.uleb128 0xb	# (DW_FORM_data1)
-	.uleb128 0x3e	# (DW_AT_encoding)
-	.uleb128 0xb	# (DW_FORM_data1)
-	.uleb128 0x3	# (DW_AT_name)
-	.uleb128 0x8	# (DW_FORM_string)
-	.byte	0
-	.byte	0
-	.byte	0
-	.section	.debug_aranges,"",@progbits
-	.long	0x2c	# Length of Address Ranges Info
-	.value	0x2	# DWARF Version
-	.long	.Ldebug_info0	# Offset of Compilation Unit Info
-	.byte	0x8	# Size of Address
-	.byte	0	# Size of Segment Descriptor
-	.value	0	# Pad to 16 byte boundary
-	.value	0
-	.quad	.Ltext0	# Address
-	.quad	.Letext0-.Ltext0	# Length
-	.quad	0
-	.quad	0
-	.section	.debug_line,"",@progbits
-.Ldebug_line0:
-	.section	.debug_str,"MS",@progbits,1
-.LASF0:
-	.string	"GNU C 4.6.3 20120306 (Red Hat 4.6.3-2) -mtune=generic -march=x86-64 -g"
-.LASF2:
-	.string	"/tmp"
-.LASF3:
-	.string	"main"
-.LASF1:
-	.string	"dw2-error.c"
-	.ident	"GCC: (GNU) 4.6.3 20120306 (Red Hat 4.6.3-2)"
-	.section	.note.GNU-stack,"",@progbits
+        .section .debug_info
+.Lcu1_begin:
+        .4byte        .Lcu1_end - .Lcu1_start
+.Lcu1_start:
+        .2byte        153               /* Version */
+        .4byte        .Labbrev1_begin   /* Abbrevs */
+        .byte        4                  /* Pointer size */
+        .uleb128        2               /* Abbrev (DW_TAG_compile_unit) */
+        .sleb128        0x0002
+.Lcu1_end:
+        .section .debug_abbrev
+.Labbrev1_begin:
+        .uleb128        2               /* Abbrev start */
+        .uleb128        0x11            /* DW_TAG_compile_unit */
+        .byte        0                  /* has_children */
+        .uleb128        0x13            /* DW_AT_language */
+        .uleb128        0x0d            /* DW_FORM_sdata */
+        .byte        0x0                /* Terminator */
+        .byte        0x0                /* Terminator */
+        .byte        0x0                /* Terminator */
+        .byte        0x0                /* Terminator */
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.exp b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
index d0baeea..1fbc2a5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
@@ -20,11 +20,28 @@ if {![dwarf2_support]} {
     return 0  
 }
 
-standard_testfile .S
+standard_testfile .c dw2-error.S
 
-# We can't use prepare_for_testing here because we need to check the
-# 'file' command's output.
-if {[build_executable $testfile.exp $testfile $srcfile {nodebug}]} {
+# Make some DWARF for the test.
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+
+    cu { version 153 } {
+    compile_unit {{language @DW_LANG_C}}
+    }
+}
+
+if  {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \
+      object {nodebug}] != ""} {
+    return -1
+}
+
+if  {[gdb_compile $asm_file ${binfile}2.o object {nodebug}] != ""} {
+    return -1
+}
+
+if  {[gdb_compile [list ${binfile}1.o ${binfile}2.o ] \
+      "${binfile}" executable {}] != ""} {
     return -1
 }
 
-- 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets
  2013-12-02 20:43                 ` Omair Javaid
@ 2013-12-03 20:37                   ` Tom Tromey
  0 siblings, 0 replies; 12+ messages in thread
From: Tom Tromey @ 2013-12-03 20:37 UTC (permalink / raw)
  To: Omair Javaid; +Cc: gdb-patches, Patch Tracking, Abid, Hafiz

>>>>> "Omair" == Omair Javaid <omair.javaid@linaro.org> writes:

Omair> Sorry about responding late. I have updated patch with suggested
Omair> changes.

Omair> gdb/testsuite/ChangeLog:

Omair> 2013-12-02  Omair Javaid  <Omair.Javaid@linaro.org>

Omair>         * gdb.dwarf2/dw2-error.exp: Re-written using dwarf assembler
Omair>         * gdb.dwarf2/dw2-error.S: Delete

Looks good, thanks.

Tom

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-12-03 20:37 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-22  3:16 [PATCH] testsuite/gdb.dwarf2: Enable dw2-error.exp tests for arm targets Omair Javaid
2013-07-22 16:06 ` Tom Tromey
2013-09-19 15:11   ` Omair Javaid
2013-09-19 18:37     ` Tom Tromey
2013-09-26 11:13       ` Omair Javaid
2013-09-27 19:56         ` Tom Tromey
2013-10-01  9:48           ` Omair Javaid
2013-10-01 10:05             ` Abid, Hafiz
2013-10-01 15:20               ` Tom Tromey
2013-12-02 20:43                 ` Omair Javaid
2013-12-03 20:37                   ` Tom Tromey
2013-10-01 15:19             ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).