* [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).