- [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604).
- [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp. - [archer-keiths-expr-cumulative+upstream] Import C++ testcases. - testsuite: Fix gdb-test-expr-cumulative-archer.patch compatibility.
This commit is contained in:
parent
0bba59c99f
commit
a174f683ec
220
gdb-test-bt-cfi-without-die.patch
Normal file
220
gdb-test-bt-cfi-without-die.patch
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
http://sourceware.org/ml/archer/2010-q3/msg00028.html
|
||||||
|
Subject: [delayed-symfile] [commit] Fix a regression on CFI without DIE [Re:
|
||||||
|
|
||||||
|
On Wed, 25 Feb 2009 00:14:29 +0100, Jan Kratochvil wrote:
|
||||||
|
> commit 6a37c2b9962258ecf9299cc34a650e64a06acaa5
|
||||||
|
>
|
||||||
|
> There was a regression on gdb.base/savedregs.exp.
|
||||||
|
>
|
||||||
|
> quick_addrmap/require_partial_symbols should be used even for the unwind debug
|
||||||
|
> info checking as its load has been also delayed by this branch.
|
||||||
|
[...]
|
||||||
|
> --- a/gdb/dwarf2-frame.c
|
||||||
|
> +++ b/gdb/dwarf2-frame.c
|
||||||
|
[...]
|
||||||
|
> @@ -1499,6 +1500,14 @@ dwarf2_frame_find_fde (CORE_ADDR *pc)
|
||||||
|
> struct dwarf2_fde *fde;
|
||||||
|
> CORE_ADDR offset;
|
||||||
|
>
|
||||||
|
> + if (objfile->quick_addrmap)
|
||||||
|
> + {
|
||||||
|
> + if (!addrmap_find (objfile->quick_addrmap, *pc))
|
||||||
|
> + continue;
|
||||||
|
> + }
|
||||||
|
> + /* FIXME: Read-in only .debug_frame/.eh_frame without .debug_info? */
|
||||||
|
> + require_partial_symbols (objfile);
|
||||||
|
> +
|
||||||
|
|
||||||
|
but this has caused a different regression (as discussed in the confcall).
|
||||||
|
|
||||||
|
QUICK_ADDRMAP is built only from .debug_aranges. But we can have existing
|
||||||
|
built .debug_aranges for CUs in OBJFILE but still some CUs do not need to have
|
||||||
|
DWARF at all while they can feature CFIs (.eh_frame or .debug_frame).
|
||||||
|
It has been described by Daniel Jacobowitz at:
|
||||||
|
Re: [2/4] RFC: check psymtabs_addrmap before reading FDEs
|
||||||
|
http://sourceware.org/ml/gdb-patches/2010-07/msg00012.html
|
||||||
|
|
||||||
|
Sorry for this regression by me (in that fix of a different regression).
|
||||||
|
|
||||||
|
Fixed it the "slow way" as this branch is now obsoleted by .gdb-index.
|
||||||
|
|
||||||
|
No regressions on {x86_64,x86_64-m32,i686}-fedora13-linux-gnu.
|
||||||
|
|
||||||
|
Checked-in.
|
||||||
|
|
||||||
|
|
||||||
|
Thanks,
|
||||||
|
Jan
|
||||||
|
|
||||||
|
|
||||||
|
eb8df8566acc1ed963e3e9b77c13b9c2c3db03fb
|
||||||
|
|
||||||
|
Test CFI is parsed even for range (function) not described by any DIE.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=614028
|
||||||
|
|
||||||
|
gdb/
|
||||||
|
* dwarf2-frame.c (dwarf2_frame_find_fde): Remove the
|
||||||
|
OBJFILE->QUICK_ADDRMAP check. New comment why.
|
||||||
|
|
||||||
|
gdb/testsuite/
|
||||||
|
* gdb.base/cfi-without-die.exp, gdb.base/cfi-without-die-main.c,
|
||||||
|
gdb.base/cfi-without-die-caller.c: New files.
|
||||||
|
---
|
||||||
|
gdb/dwarf2-frame.c | 8 +--
|
||||||
|
gdb/testsuite/gdb.base/cfi-without-die-caller.c | 28 ++++++++++
|
||||||
|
gdb/testsuite/gdb.base/cfi-without-die-main.c | 32 +++++++++++
|
||||||
|
gdb/testsuite/gdb.base/cfi-without-die.exp | 67 +++++++++++++++++++++++
|
||||||
|
4 files changed, 130 insertions(+), 5 deletions(-)
|
||||||
|
create mode 100644 gdb/testsuite/gdb.base/cfi-without-die-caller.c
|
||||||
|
create mode 100644 gdb/testsuite/gdb.base/cfi-without-die-main.c
|
||||||
|
create mode 100644 gdb/testsuite/gdb.base/cfi-without-die.exp
|
||||||
|
|
||||||
|
diff --git a/gdb/testsuite/gdb.base/cfi-without-die-caller.c b/gdb/testsuite/gdb.base/cfi-without-die-caller.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..afdfd53
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/testsuite/gdb.base/cfi-without-die-caller.c
|
||||||
|
@@ -0,0 +1,28 @@
|
||||||
|
+/* This testcase is part of GDB, the GNU debugger.
|
||||||
|
+
|
||||||
|
+ Copyright 2005, 2007, 2008, 2009, 2010 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/>. */
|
||||||
|
+
|
||||||
|
+typedef int (*callback_t) (void);
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+caller (callback_t callback)
|
||||||
|
+{
|
||||||
|
+ /* Ensure some frame content to push away the return address. */
|
||||||
|
+ volatile const long one = 1;
|
||||||
|
+
|
||||||
|
+ /* Modify the return value to prevent any tail-call optimization. */
|
||||||
|
+ return (*callback) () - one;
|
||||||
|
+}
|
||||||
|
diff --git a/gdb/testsuite/gdb.base/cfi-without-die-main.c b/gdb/testsuite/gdb.base/cfi-without-die-main.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8451c4b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/testsuite/gdb.base/cfi-without-die-main.c
|
||||||
|
@@ -0,0 +1,32 @@
|
||||||
|
+/* This testcase is part of GDB, the GNU debugger.
|
||||||
|
+
|
||||||
|
+ Copyright 2005, 2007, 2008, 2009, 2010 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/>. */
|
||||||
|
+
|
||||||
|
+typedef int (*callback_t) (void);
|
||||||
|
+
|
||||||
|
+extern int caller (callback_t callback);
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+callback (void)
|
||||||
|
+{
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main (void)
|
||||||
|
+{
|
||||||
|
+ return caller (callback);
|
||||||
|
+}
|
||||||
|
diff --git a/gdb/testsuite/gdb.base/cfi-without-die.exp b/gdb/testsuite/gdb.base/cfi-without-die.exp
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..db6d248
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/testsuite/gdb.base/cfi-without-die.exp
|
||||||
|
@@ -0,0 +1,67 @@
|
||||||
|
+# Copyright 2010 Free Software Foundation, Inc.
|
||||||
|
+
|
||||||
|
+# This program is free software; you can redistribute it and/or modify
|
||||||
|
+# it under the terms of the GNU General Public License as published by
|
||||||
|
+# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+# (at your option) any later version.
|
||||||
|
+#
|
||||||
|
+# This program is distributed in the hope that it will be useful,
|
||||||
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+# GNU General Public License for more details.
|
||||||
|
+#
|
||||||
|
+# You should have received a copy of the GNU General Public License
|
||||||
|
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
+
|
||||||
|
+# Test CFI is parsed even for range (function) not described by any DIE.
|
||||||
|
+
|
||||||
|
+set testfile cfi-without-die
|
||||||
|
+set srcmainfile ${testfile}-main.c
|
||||||
|
+set srccallerfile ${testfile}-caller.c
|
||||||
|
+set executable ${testfile}
|
||||||
|
+set objmainfile ${objdir}/${subdir}/${testfile}-main.o
|
||||||
|
+set objcallerfile ${objdir}/${subdir}/${testfile}-caller.o
|
||||||
|
+set binfile ${objdir}/${subdir}/${executable}
|
||||||
|
+
|
||||||
|
+if { [gdb_compile "${srcdir}/${subdir}/${srccallerfile}" ${objcallerfile} \
|
||||||
|
+ object [list {additional_flags=-fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables}]] != ""
|
||||||
|
+ || [gdb_compile "${srcdir}/${subdir}/${srcmainfile}" ${objmainfile} object {debug}] != ""
|
||||||
|
+ || [gdb_compile "${objmainfile} ${objcallerfile}" ${binfile} executable {}] != "" } {
|
||||||
|
+ untested ${testfile}.exp
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+clean_restart $executable
|
||||||
|
+
|
||||||
|
+if ![runto callback] then {
|
||||||
|
+ fail "verify unwinding: Can't run to callback"
|
||||||
|
+ return 0
|
||||||
|
+}
|
||||||
|
+set test "verify unwinding breaks without CFI"
|
||||||
|
+gdb_test_multiple "bt" $test {
|
||||||
|
+ -re " in main .*\r\n$gdb_prompt $" {
|
||||||
|
+ fail $test
|
||||||
|
+ }
|
||||||
|
+ -re "\r\n$gdb_prompt $" {
|
||||||
|
+ pass $test
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if { [gdb_compile "${srcdir}/${subdir}/${srccallerfile}" ${objcallerfile} \
|
||||||
|
+ object [list {additional_flags=-fomit-frame-pointer -funwind-tables -fasynchronous-unwind-tables}]] != ""
|
||||||
|
+ || [gdb_compile "${srcdir}/${subdir}/${srcmainfile}" ${objmainfile} object {debug}] != ""
|
||||||
|
+ || [gdb_compile "${objmainfile} ${objcallerfile}" ${binfile} executable {}] != "" } {
|
||||||
|
+ untested ${testfile}.exp
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+clean_restart $executable
|
||||||
|
+
|
||||||
|
+if ![runto callback] then {
|
||||||
|
+ fail "test CFI without DIEs: Can't run to callback"
|
||||||
|
+ return 0
|
||||||
|
+}
|
||||||
|
+# #0 callback () at ...
|
||||||
|
+# #1 0x00000000004004e9 in caller ()
|
||||||
|
+# #2 0x00000000004004cd in main () at ...
|
||||||
|
+gdb_test "bt" "#0 +callback \[^\r\n\]+\r\n#1 \[^\r\n\]+ in caller \[^\r\n\]+\r\n#2 \[^\r\n\]+ in main \[^\r\n\]+" "verify unwindin works for CFI without DIEs"
|
||||||
|
--
|
||||||
|
1.7.1.1
|
||||||
|
|
214
gdb-test-dw2-aranges.patch
Normal file
214
gdb-test-dw2-aranges.patch
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
[archer-tromey-delayed-symfile]
|
||||||
|
|
||||||
|
commit 77fa7778a37b0d28a7e4e5235f074a10ecf1815d
|
||||||
|
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
|
||||||
|
Date: Sat Aug 15 15:05:54 2009 +0200
|
||||||
|
|
||||||
|
Test for "handle incorrect aranges".
|
||||||
|
|
||||||
|
readelf:
|
||||||
|
Contents of the .debug_aranges section:
|
||||||
|
|
||||||
|
Length: 8
|
||||||
|
Version: 2
|
||||||
|
Offset into .debug_info: 0x0
|
||||||
|
Pointer Size: 0
|
||||||
|
Segment Size: 0
|
||||||
|
|
||||||
|
Address Length
|
||||||
|
Floating point exception
|
||||||
|
|
||||||
|
* gdb.dwarf2/dw2-aranges.exp, gdb.dwarf2/dw2-aranges.S: New files.
|
||||||
|
|
||||||
|
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.S b/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d5b9ca5a
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
|
||||||
|
@@ -0,0 +1,140 @@
|
||||||
|
+/* This testcase is part of GDB, the GNU debugger.
|
||||||
|
+
|
||||||
|
+ Copyright 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||||
|
+
|
||||||
|
+ This program is free software; you can redistribute it and/or modify
|
||||||
|
+ it under the terms of the GNU General Public License as published by
|
||||||
|
+ the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+ (at your option) any later version.
|
||||||
|
+
|
||||||
|
+ This program is distributed in the hope that it will be useful,
|
||||||
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+ GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+ You should have received a copy of the GNU General Public License
|
||||||
|
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
+
|
||||||
|
+/* Test .debug_aranges containing zero address_size. */
|
||||||
|
+
|
||||||
|
+/* Dummy function to provide debug information for. */
|
||||||
|
+
|
||||||
|
+ .text
|
||||||
|
+.Lbegin_text1:
|
||||||
|
+ .globl main
|
||||||
|
+ .type main, %function
|
||||||
|
+main:
|
||||||
|
+.Lbegin_main:
|
||||||
|
+ .int 0
|
||||||
|
+.Lend_main:
|
||||||
|
+ .size main, .-main
|
||||||
|
+.Lend_text1:
|
||||||
|
+
|
||||||
|
+/* Debug information */
|
||||||
|
+
|
||||||
|
+ .section .debug_info
|
||||||
|
+.Lcu1_begin:
|
||||||
|
+ /* CU header */
|
||||||
|
+ .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */
|
||||||
|
+.Lcu1_start:
|
||||||
|
+ .2byte 2 /* DWARF Version */
|
||||||
|
+ .4byte .Labbrev1_begin /* Offset into abbrev section */
|
||||||
|
+ .byte 4 /* Pointer size */
|
||||||
|
+
|
||||||
|
+ /* CU die */
|
||||||
|
+ .uleb128 1 /* Abbrev: DW_TAG_compile_unit */
|
||||||
|
+ .4byte .Lend_text1 /* DW_AT_high_pc */
|
||||||
|
+ .4byte .Lbegin_text1 /* DW_AT_low_pc */
|
||||||
|
+ .ascii "file1.txt\0" /* DW_AT_name */
|
||||||
|
+ .ascii "GNU C 3.3.3\0" /* DW_AT_producer */
|
||||||
|
+ .byte 1 /* DW_AT_language (C) */
|
||||||
|
+
|
||||||
|
+ /* main */
|
||||||
|
+ .uleb128 2 /* Abbrev: DW_TAG_subprogram */
|
||||||
|
+ .byte 1 /* DW_AT_external */
|
||||||
|
+ .byte 1 /* DW_AT_decl_file */
|
||||||
|
+ .byte 2 /* DW_AT_decl_line */
|
||||||
|
+ .ascii "main\0" /* DW_AT_name */
|
||||||
|
+ .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */
|
||||||
|
+ .4byte .Lbegin_main /* DW_AT_low_pc */
|
||||||
|
+ .4byte .Lend_main /* DW_AT_high_pc */
|
||||||
|
+ .byte 1 /* DW_AT_frame_base: length */
|
||||||
|
+ .byte 0x55 /* DW_AT_frame_base: DW_OP_reg5 */
|
||||||
|
+
|
||||||
|
+.Ltype_int:
|
||||||
|
+ .uleb128 3 /* Abbrev: DW_TAG_base_type */
|
||||||
|
+ .ascii "int\0" /* DW_AT_name */
|
||||||
|
+ .byte 4 /* DW_AT_byte_size */
|
||||||
|
+ .byte 5 /* DW_AT_encoding */
|
||||||
|
+
|
||||||
|
+ .byte 0 /* End of children of CU */
|
||||||
|
+
|
||||||
|
+.Lcu1_end:
|
||||||
|
+
|
||||||
|
+/* Abbrev table */
|
||||||
|
+ .section .debug_abbrev
|
||||||
|
+.Labbrev1_begin:
|
||||||
|
+ .uleb128 1 /* Abbrev code */
|
||||||
|
+ .uleb128 0x11 /* DW_TAG_compile_unit */
|
||||||
|
+ .byte 1 /* has_children */
|
||||||
|
+ .uleb128 0x12 /* DW_AT_high_pc */
|
||||||
|
+ .uleb128 0x1 /* DW_FORM_addr */
|
||||||
|
+ .uleb128 0x11 /* DW_AT_low_pc */
|
||||||
|
+ .uleb128 0x1 /* DW_FORM_addr */
|
||||||
|
+ .uleb128 0x3 /* DW_AT_name */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0x25 /* DW_AT_producer */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0x13 /* DW_AT_language */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+ .uleb128 2 /* Abbrev code */
|
||||||
|
+ .uleb128 0x2e /* DW_TAG_subprogram */
|
||||||
|
+ .byte 0 /* has_children */
|
||||||
|
+ .uleb128 0x3f /* DW_AT_external */
|
||||||
|
+ .uleb128 0xc /* DW_FORM_flag */
|
||||||
|
+ .uleb128 0x3a /* DW_AT_decl_file */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .uleb128 0x3b /* DW_AT_decl_line */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .uleb128 0x3 /* DW_AT_name */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0x49 /* DW_AT_type */
|
||||||
|
+ .uleb128 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 0xa /* DW_FORM_block1 */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+ .uleb128 3 /* Abbrev code */
|
||||||
|
+ .uleb128 0x24 /* DW_TAG_base_type */
|
||||||
|
+ .byte 0 /* has_children */
|
||||||
|
+ .uleb128 0x3 /* DW_AT_name */
|
||||||
|
+ .uleb128 0x8 /* DW_FORM_string */
|
||||||
|
+ .uleb128 0xb /* DW_AT_byte_size */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .uleb128 0x3e /* DW_AT_encoding */
|
||||||
|
+ .uleb128 0xb /* DW_FORM_data1 */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+ .byte 0x0 /* Terminator */
|
||||||
|
+
|
||||||
|
+/* aranges table */
|
||||||
|
+ .section .debug_aranges
|
||||||
|
+ .long .Laranges_end - 1f
|
||||||
|
+1:
|
||||||
|
+ .2byte 2 /* aranges Version */
|
||||||
|
+ .4byte .Lcu1_begin - .debug_info /* Offset into .debug_info section */
|
||||||
|
+ /* The GDB crasher is this zero value. */
|
||||||
|
+ .byte 0 /* aranges address_size */
|
||||||
|
+ .byte 0 /* aranges segment_size */
|
||||||
|
+
|
||||||
|
+.Laranges_end:
|
||||||
|
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..39632d5
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
|
||||||
|
@@ -0,0 +1,40 @@
|
||||||
|
+# Copyright 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||||
|
+
|
||||||
|
+# This program is free software; you can redistribute it and/or modify
|
||||||
|
+# it under the terms of the GNU General Public License as published by
|
||||||
|
+# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
+# (at your option) any later version.
|
||||||
|
+#
|
||||||
|
+# This program is distributed in the hope that it will be useful,
|
||||||
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+# GNU General Public License for more details.
|
||||||
|
+#
|
||||||
|
+# You should have received a copy of the GNU General Public License
|
||||||
|
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
+
|
||||||
|
+# Test .debug_aranges containing zero address_size.
|
||||||
|
+
|
||||||
|
+# This test can only be run on targets which support DWARF-2 and use gas.
|
||||||
|
+# For now pick a sampling of likely targets.
|
||||||
|
+if {![istarget *-*-linux*]
|
||||||
|
+ && ![istarget *-*-gnu*]
|
||||||
|
+ && ![istarget *-*-elf*]
|
||||||
|
+ && ![istarget *-*-openbsd*]
|
||||||
|
+ && ![istarget arm-*-eabi*]
|
||||||
|
+ && ![istarget powerpc-*-eabi*]} {
|
||||||
|
+ return 0
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+set testfile "dw2-aranges"
|
||||||
|
+set srcfile ${testfile}.S
|
||||||
|
+set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
+
|
||||||
|
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {nodebug}] != "" } {
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+clean_restart $testfile
|
||||||
|
+
|
||||||
|
+# Failed gdb_load would abort the testcase execution earlier.
|
||||||
|
+pass "file loaded"
|
207
gdb-test-expr-cumulative-archer.patch
Normal file
207
gdb-test-expr-cumulative-archer.patch
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
archer archer-keiths-expr-cumulative
|
||||||
|
b5a7497340b24199f0c7ba7fdf0d54d4df44d6bc
|
||||||
|
|
||||||
|
--- /dev/null 2011-01-12 06:28:36.282000001 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.cp/namespace-nested-imports.cc 2009-09-25 06:50:38.000000000 +0200
|
||||||
|
@@ -0,0 +1,36 @@
|
||||||
|
+namespace A
|
||||||
|
+{
|
||||||
|
+ namespace B
|
||||||
|
+ {
|
||||||
|
+ int ab = 11;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+namespace C
|
||||||
|
+{
|
||||||
|
+ namespace D
|
||||||
|
+ {
|
||||||
|
+ using namespace A::B;
|
||||||
|
+
|
||||||
|
+ int
|
||||||
|
+ second()
|
||||||
|
+ {
|
||||||
|
+ ab;
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ int
|
||||||
|
+ first()
|
||||||
|
+ {
|
||||||
|
+ //ab;
|
||||||
|
+ return D::second();
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main()
|
||||||
|
+{
|
||||||
|
+ //ab;
|
||||||
|
+ return C::first();
|
||||||
|
+}
|
||||||
|
--- /dev/null 2011-01-12 06:28:36.282000001 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.cp/namespace-nested-imports.exp 2009-09-25 06:50:38.000000000 +0200
|
||||||
|
@@ -0,0 +1,50 @@
|
||||||
|
+# Copyright 2008 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/>.
|
||||||
|
+
|
||||||
|
+set testfile namespace-nested-imports
|
||||||
|
+set srcfile ${testfile}.cc
|
||||||
|
+set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
|
||||||
|
+ untested "Couldn't compile test program"
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# Get things started.
|
||||||
|
+
|
||||||
|
+gdb_exit
|
||||||
|
+gdb_start
|
||||||
|
+gdb_reinitialize_dir $srcdir/$subdir
|
||||||
|
+gdb_load ${binfile}
|
||||||
|
+
|
||||||
|
+############################################
|
||||||
|
+if ![runto_main] then {
|
||||||
|
+ perror "couldn't run to breakpoint main"
|
||||||
|
+ continue
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+gdb_test "print ab" "No symbol .* in current context."
|
||||||
|
+
|
||||||
|
+############################################
|
||||||
|
+gdb_breakpoint C::first
|
||||||
|
+gdb_continue_to_breakpoint "C::first"
|
||||||
|
+
|
||||||
|
+gdb_test "print ab" "No symbol .* in current context."
|
||||||
|
+gdb_test "print C::D::ab" "= 11"
|
||||||
|
+
|
||||||
|
+############################################
|
||||||
|
+gdb_breakpoint C::D::second
|
||||||
|
+gdb_continue_to_breakpoint "C::D::second"
|
||||||
|
+
|
||||||
|
+gdb_test "print ab" "= 11"
|
||||||
|
--- /dev/null 2011-01-12 06:28:36.282000001 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.cp/namespace-no-imports.cc 2009-09-25 06:50:38.000000000 +0200
|
||||||
|
@@ -0,0 +1,37 @@
|
||||||
|
+
|
||||||
|
+namespace A
|
||||||
|
+{
|
||||||
|
+ int _a = 11;
|
||||||
|
+
|
||||||
|
+ namespace B{
|
||||||
|
+
|
||||||
|
+ int ab = 22;
|
||||||
|
+
|
||||||
|
+ namespace C{
|
||||||
|
+
|
||||||
|
+ int abc = 33;
|
||||||
|
+
|
||||||
|
+ int second(){
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ int first(){
|
||||||
|
+ _a;
|
||||||
|
+ ab;
|
||||||
|
+ C::abc;
|
||||||
|
+ return C::second();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main()
|
||||||
|
+{
|
||||||
|
+ A::_a;
|
||||||
|
+ A::B::ab;
|
||||||
|
+ A::B::C::abc;
|
||||||
|
+ return A::B::first();
|
||||||
|
+}
|
||||||
|
--- /dev/null 2011-01-12 06:28:36.282000001 +0100
|
||||||
|
+++ ./gdb/testsuite/gdb.cp/namespace-no-imports.exp 2009-09-25 06:50:38.000000000 +0200
|
||||||
|
@@ -0,0 +1,69 @@
|
||||||
|
+# Copyright 2008 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/>.
|
||||||
|
+
|
||||||
|
+set testfile namespace-no-imports
|
||||||
|
+set srcfile ${testfile}.cc
|
||||||
|
+set binfile ${objdir}/${subdir}/${testfile}
|
||||||
|
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
|
||||||
|
+ untested "Couldn't compile test program"
|
||||||
|
+ return -1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# Get things started.
|
||||||
|
+
|
||||||
|
+gdb_exit
|
||||||
|
+gdb_start
|
||||||
|
+gdb_reinitialize_dir $srcdir/$subdir
|
||||||
|
+gdb_load ${binfile}
|
||||||
|
+
|
||||||
|
+############################################
|
||||||
|
+if ![runto_main] then {
|
||||||
|
+ perror "couldn't run to breakpoint main"
|
||||||
|
+ continue
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+gdb_test "print A::_a" "= 11"
|
||||||
|
+gdb_test "print A::B::ab" "= 22"
|
||||||
|
+gdb_test "print A::B::C::abc" "= 33"
|
||||||
|
+
|
||||||
|
+gdb_test "print _a" "No symbol .* in current context."
|
||||||
|
+gdb_test "print ab" "No symbol .* in current context."
|
||||||
|
+gdb_test "print abc" "No symbol .* in current context."
|
||||||
|
+
|
||||||
|
+############################################
|
||||||
|
+gdb_breakpoint A::B::first
|
||||||
|
+gdb_continue_to_breakpoint "A::B::first"
|
||||||
|
+
|
||||||
|
+gdb_test "print A::_a" "= 11"
|
||||||
|
+gdb_test "print A::B::ab" "= 22"
|
||||||
|
+gdb_test "print A::B::C::abc" "= 33"
|
||||||
|
+
|
||||||
|
+gdb_test "print _a" "= 11"
|
||||||
|
+gdb_test "print ab" "= 22"
|
||||||
|
+gdb_test "print C::abc" "= 33"
|
||||||
|
+
|
||||||
|
+gdb_test "print abc" "No symbol .* in current context."
|
||||||
|
+
|
||||||
|
+############################################
|
||||||
|
+gdb_breakpoint A::B::C::second
|
||||||
|
+gdb_continue_to_breakpoint "A::B::C::second"
|
||||||
|
+
|
||||||
|
+gdb_test "print A::_a" "= 11"
|
||||||
|
+gdb_test "print A::B::ab" "= 22"
|
||||||
|
+gdb_test "print A::B::C::abc" "= 33"
|
||||||
|
+
|
||||||
|
+gdb_test "print _a" "= 11"
|
||||||
|
+gdb_test "print ab" "= 22"
|
||||||
|
+gdb_test "print abc" "= 33"
|
23
gdb.spec
23
gdb.spec
@ -27,7 +27,7 @@ Version: 7.2.50.20110107
|
|||||||
|
|
||||||
# The release always contains a leading reserved number, start it at 1.
|
# The release always contains a leading reserved number, start it at 1.
|
||||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||||
Release: 9%{?_with_upstream:.upstream}%{dist}
|
Release: 10%{?_with_upstream:.upstream}%{dist}
|
||||||
|
|
||||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
|
||||||
Group: Development/Debuggers
|
Group: Development/Debuggers
|
||||||
@ -487,6 +487,10 @@ Patch486: gdb-bz562763-pretty-print-2d-vectors.patch
|
|||||||
#=push+work: There are some outstanding issues, check the mails.
|
#=push+work: There are some outstanding issues, check the mails.
|
||||||
Patch487: gdb-bz562763-pretty-print-2d-vectors-libstdcxx.patch
|
Patch487: gdb-bz562763-pretty-print-2d-vectors-libstdcxx.patch
|
||||||
|
|
||||||
|
# [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604).
|
||||||
|
#=fedoratest
|
||||||
|
Patch490: gdb-test-bt-cfi-without-die.patch
|
||||||
|
|
||||||
# Provide /usr/bin/gdb-add-index for rpm-build (Tom Tromey).
|
# Provide /usr/bin/gdb-add-index for rpm-build (Tom Tromey).
|
||||||
#=drop: Re-check against the upstream version.
|
#=drop: Re-check against the upstream version.
|
||||||
Patch491: gdb-gdb-add-index-script.patch
|
Patch491: gdb-gdb-add-index-script.patch
|
||||||
@ -521,6 +525,14 @@ Patch541: gdb-test-pp-hint-error.patch
|
|||||||
#=fedoratest
|
#=fedoratest
|
||||||
Patch542: gdb-test-pid0-core.patch
|
Patch542: gdb-test-pid0-core.patch
|
||||||
|
|
||||||
|
# [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp.
|
||||||
|
# =fedoratest
|
||||||
|
Patch547: gdb-test-dw2-aranges.patch
|
||||||
|
|
||||||
|
# [archer-keiths-expr-cumulative+upstream] Import C++ testcases.
|
||||||
|
# =fedoratest
|
||||||
|
Patch548: gdb-test-expr-cumulative-archer.patch
|
||||||
|
|
||||||
BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
|
BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
|
||||||
Requires: readline%{?_isa}
|
Requires: readline%{?_isa}
|
||||||
BuildRequires: readline-devel%{?_isa}
|
BuildRequires: readline-devel%{?_isa}
|
||||||
@ -758,6 +770,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
|||||||
%patch486 -p1
|
%patch486 -p1
|
||||||
%patch415 -p1
|
%patch415 -p1
|
||||||
%patch519 -p1
|
%patch519 -p1
|
||||||
|
%patch490 -p1
|
||||||
%patch491 -p1
|
%patch491 -p1
|
||||||
%patch496 -p1
|
%patch496 -p1
|
||||||
%patch497 -p1
|
%patch497 -p1
|
||||||
@ -767,6 +780,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
|||||||
%patch526 -p1
|
%patch526 -p1
|
||||||
%patch541 -p1
|
%patch541 -p1
|
||||||
%patch542 -p1
|
%patch542 -p1
|
||||||
|
%patch547 -p1
|
||||||
|
%patch548 -p1
|
||||||
|
|
||||||
%patch393 -p1
|
%patch393 -p1
|
||||||
%patch335 -p1
|
%patch335 -p1
|
||||||
@ -1163,6 +1178,12 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Jan 15 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110107-10.fc15
|
||||||
|
- [delayed-symfile] Test a backtrace regression on CFIs without DIE (BZ 614604).
|
||||||
|
- [archer-tromey-delayed-symfile] New test gdb.dwarf2/dw2-aranges.exp.
|
||||||
|
- [archer-keiths-expr-cumulative+upstream] Import C++ testcases.
|
||||||
|
- testsuite: Fix gdb-test-expr-cumulative-archer.patch compatibility.
|
||||||
|
|
||||||
* Fri Jan 7 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110107-9.fc15
|
* Fri Jan 7 2011 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.2.50.20110107-9.fc15
|
||||||
- Remove --with-pythondir as no longer valid.
|
- Remove --with-pythondir as no longer valid.
|
||||||
- Provide %{_bindir}gdb-add-index even on RHEL-5.
|
- Provide %{_bindir}gdb-add-index even on RHEL-5.
|
||||||
|
Loading…
Reference in New Issue
Block a user