mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-11 08:25:30 +08:00
gdb/testsuite/
* gdb.dwarf2/dw2-ranges.S: Rename to ... * gdb.dwarf2/dw2-ranges.c: ... here, convert it to C. * gdb.dwarf2/dw2-ranges.exp: Skip the testcase on !$gcc_compiled. Rename srcfile, srcfile2 and srcfile3, new asmfile, asmfile2 and asmfile3. Comment the STABS (#3) file compilation. Compile everything through assembler. Provide KFAIL for symtab/12497. * gdb.dwarf2/dw2-ranges2.S: Rename to ... * gdb.dwarf2/dw2-ranges2.c: ... here, convert it to C. * gdb.dwarf2/dw2-ranges3.S: Rename to ... * gdb.dwarf2/dw2-ranges3.c: ... here, convert it to C.
This commit is contained in:
@ -1,3 +1,16 @@
|
|||||||
|
2011-02-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
* gdb.dwarf2/dw2-ranges.S: Rename to ...
|
||||||
|
* gdb.dwarf2/dw2-ranges.c: ... here, convert it to C.
|
||||||
|
* gdb.dwarf2/dw2-ranges.exp: Skip the testcase on !$gcc_compiled.
|
||||||
|
Rename srcfile, srcfile2 and srcfile3, new asmfile, asmfile2 and
|
||||||
|
asmfile3. Comment the STABS (#3) file compilation. Compile
|
||||||
|
everything through assembler. Provide KFAIL for symtab/12497.
|
||||||
|
* gdb.dwarf2/dw2-ranges2.S: Rename to ...
|
||||||
|
* gdb.dwarf2/dw2-ranges2.c: ... here, convert it to C.
|
||||||
|
* gdb.dwarf2/dw2-ranges3.S: Rename to ...
|
||||||
|
* gdb.dwarf2/dw2-ranges3.c: ... here, convert it to C.
|
||||||
|
|
||||||
2011-02-24 Michael Snyder <msnyder@vmware.com>
|
2011-02-24 Michael Snyder <msnyder@vmware.com>
|
||||||
|
|
||||||
* gdb.base/break.exp: Remove debugging 'printf' accidentally
|
* gdb.base/break.exp: Remove debugging 'printf' accidentally
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2007, 2008, 2009, 2010, 2011 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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Despite the sections below will be adjacent the assembler has to produce
|
|
||||||
DW_AT_ranges as the linker could place both sections at arbitrary locations.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Such directive is required by GAS for builds without `-g'. */
|
|
||||||
.file 1 "dw2-ranges.S"
|
|
||||||
|
|
||||||
/* Without this directive GAS will not emit DWARF2 unless we provide an
|
|
||||||
instruction to assemble. We want to avoid any instructions to
|
|
||||||
remain architecture independent. */
|
|
||||||
.loc_mark_labels 1
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
.globl main
|
|
||||||
.func main
|
|
||||||
main: .int 0
|
|
||||||
.endfunc
|
|
||||||
.size main, . - main
|
|
||||||
|
|
||||||
/* `.fini' section is here to make sure `dw2-ranges.S'
|
|
||||||
vs. `dw2-ranges2.S' overlap their DW_AT_ranges with each other. */
|
|
||||||
.section .fini, "ax", @progbits
|
|
||||||
|
|
||||||
.globl func
|
|
||||||
.func func
|
|
||||||
func: .int 0
|
|
||||||
.endfunc
|
|
||||||
.size func, . - func
|
|
@ -19,18 +19,16 @@
|
|||||||
DW_AT_ranges as the linker could place both sections at arbitrary locations.
|
DW_AT_ranges as the linker could place both sections at arbitrary locations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Such directive is required by GAS for builds without `-g'. */
|
/* `.fini' section is here to make sure `dw2-ranges.c'
|
||||||
.file 1 "dw2-ranges3.S"
|
vs. `dw2-ranges2.c' overlap their DW_AT_ranges with each other. */
|
||||||
|
|
||||||
/* Without this directive GAS will not emit DWARF2 unless we provide an
|
void __attribute__ ((section (".fini")))
|
||||||
instruction to assemble. We want to avoid any instructions to
|
func (void)
|
||||||
remain architecture independent. */
|
{
|
||||||
.loc_mark_labels 1
|
}
|
||||||
|
|
||||||
.text
|
int
|
||||||
|
main (void)
|
||||||
.globl main3
|
{
|
||||||
.func main3
|
return 0;
|
||||||
main3: .int 0
|
}
|
||||||
.endfunc
|
|
||||||
.size main3, . - main3
|
|
@ -23,24 +23,47 @@ if {![dwarf2_support]} {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# The .c files use __attribute__.
|
||||||
|
if [get_compiler_info unused] {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if !$gcc_compiled {
|
||||||
|
verbose "Skipping DW_AT_ranges test."
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
set testfile "dw2-ranges"
|
set testfile "dw2-ranges"
|
||||||
set srcfile ${testfile}.S
|
set srcfile ${testfile}.c
|
||||||
set srcfile2 ${testfile}2.S
|
set srcfile2 ${testfile}2.c
|
||||||
set srcfile3 ${testfile}3.S
|
set srcfile3 ${testfile}3.c
|
||||||
|
set asmfile ${objdir}/${subdir}/${testfile}.s
|
||||||
|
set asmfile2 ${objdir}/${subdir}/${testfile}2.s
|
||||||
|
set asmfile3 ${objdir}/${subdir}/${testfile}3.s
|
||||||
set objfile ${objdir}/${subdir}/${testfile}.o
|
set objfile ${objdir}/${subdir}/${testfile}.o
|
||||||
set objfile2 ${objdir}/${subdir}/${testfile}2.o
|
set objfile2 ${objdir}/${subdir}/${testfile}2.o
|
||||||
set objfile3 ${objdir}/${subdir}/${testfile}3.o
|
set objfile3 ${objdir}/${subdir}/${testfile}3.o
|
||||||
set binfile ${objdir}/${subdir}/${testfile}
|
set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
|
||||||
if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {additional_flags=-gdwarf-2}] != "" } {
|
# Generate .s without debug info but provide debug info by the assembler.
|
||||||
|
# This way we get DW_TAG_compile_unit DIE and only that DIE.
|
||||||
|
|
||||||
|
if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${asmfile}" assembly {}] != ""
|
||||||
|
|| [gdb_compile "${asmfile}" "${objfile}" object {additional_flags=-gdwarf-2}] != "" } {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
if {[gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${objfile2}" object {additional_flags=-gdwarf-2}] != "" } {
|
if {[gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${asmfile2}" assembly {}] != ""
|
||||||
|
|| [gdb_compile "${asmfile2}" "${objfile2}" object {additional_flags=-gdwarf-2}] != "" } {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
if {[gdb_compile "${srcdir}/${subdir}/${srcfile3}" "${objfile3}" object {additional_flags=-gstabs}] != "" } {
|
|
||||||
|
# STABS compilation is intentional as it tests the STABS lookup where is no
|
||||||
|
# partial_symtab->psymtabs_addrmap supported for that CU (Compilation Unit) in
|
||||||
|
# a file containing psymtabs_addrmap-supporting DWARF CUs.
|
||||||
|
if {[gdb_compile "${srcdir}/${subdir}/${srcfile3}" "${asmfile3}" assembly {}] != ""
|
||||||
|
|| [gdb_compile "${asmfile3}" "${objfile3}" object {additional_flags=-gstabs}] != "" } {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
if {[gdb_compile "${objfile} ${objfile2} ${objfile3}" "${binfile}" executable {}] != "" } {
|
if {[gdb_compile "${objfile} ${objfile2} ${objfile3}" "${binfile}" executable {}] != "" } {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
@ -62,4 +85,13 @@ gdb_test "info line main" "Line \[0-9\]* of .* starts at address .* and ends at
|
|||||||
gdb_test "info line func" "Line \[0-9\]* of .* starts at address .* and ends at .*"
|
gdb_test "info line func" "Line \[0-9\]* of .* starts at address .* and ends at .*"
|
||||||
gdb_test "info line main2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
|
gdb_test "info line main2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
|
||||||
gdb_test "info line func2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
|
gdb_test "info line func2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
|
||||||
gdb_test "info line main3" "Line \[0-9\]* of .* starts at address .* and ends at .*"
|
|
||||||
|
set test "info line main3"
|
||||||
|
gdb_test_multiple $test $test {
|
||||||
|
-re "Line \[0-9\]* of .* starts at address .* and ends at .*\r\n$gdb_prompt $" {
|
||||||
|
pass $test
|
||||||
|
}
|
||||||
|
-re "Line \[0-9\]* of .* is at address .* but contains no code\\.\r\n$gdb_prompt $" {
|
||||||
|
kfail symtab/12497 $test
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -19,28 +19,15 @@
|
|||||||
DW_AT_ranges as the linker could place both sections at arbitrary locations.
|
DW_AT_ranges as the linker could place both sections at arbitrary locations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Such directive is required by GAS for builds without `-g'. */
|
/* `.fini' section is here to make sure `dw2-ranges.c'
|
||||||
.file 1 "dw2-ranges2.S"
|
vs. `dw2-ranges2.c' overlap their DW_AT_ranges with each other. */
|
||||||
|
|
||||||
/* Without this directive GAS will not emit DWARF2 unless we provide an
|
void __attribute__ ((section (".fini")))
|
||||||
instruction to assemble. We want to avoid any instructions to
|
func2 (void)
|
||||||
remain architecture independent. */
|
{
|
||||||
.loc_mark_labels 1
|
}
|
||||||
|
|
||||||
.text
|
void
|
||||||
|
main2 (void)
|
||||||
.globl main2
|
{
|
||||||
.func main2
|
}
|
||||||
main2: .int 0
|
|
||||||
.endfunc
|
|
||||||
.size main2, . - main2
|
|
||||||
|
|
||||||
/* `.fini' section is here to make sure `dw2-ranges.S'
|
|
||||||
vs. `dw2-ranges2.S' overlap their DW_AT_ranges with each other. */
|
|
||||||
.section .fini, "ax", @progbits
|
|
||||||
|
|
||||||
.globl func2
|
|
||||||
.func func2
|
|
||||||
func2: .int 0
|
|
||||||
.endfunc
|
|
||||||
.size func2, . - func2
|
|
21
gdb/testsuite/gdb.dwarf2/dw2-ranges3.c
Normal file
21
gdb/testsuite/gdb.dwarf2/dw2-ranges3.c
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2007, 2008, 2009, 2010, 2011 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
main3 (void)
|
||||||
|
{
|
||||||
|
}
|
Reference in New Issue
Block a user