rpms/gdb/devel gdb-6.6-bz235197-fork-detach-info.patch, NONE, 1.1 gdb-6.6-multifork-debugreg.patch, NONE, 1.1 gdb-6.7-bz426600-DW_TAG_interface_type-fix.patch, NONE, 1.1 gdb-6.7-bz426600-DW_TAG_interface_type-test.patch, NONE, 1.1 gdb-6.3-inferior-notification-20050721.patch, 1.2, 1.3 gdb-6.5-bz109921-DW_AT_decl_file-test.patch, 1.1, 1.2 gdb-6.6-bz233852-attach-signalled.patch, 1.4, 1.5 gdb-6.7.1-upstream.patch, 1.3, 1.4 gdb.spec, 1.261, 1.262 gdb-6.6-bz234468-fork-detach-info.patch, 1.1, NONE gdb-6.6-multifork-debugreg-for-i386-and-x86_64.patch, 1.1, NONE
Jan Kratochvil (jkratoch)
fedora-extras-commits at redhat.com
Mon Jan 7 15:10:34 UTC 2008
- Previous message (by thread): rpms/fbreader/devel .cvsignore, 1.4, 1.5 fbreader-desktop.patch, 1.1, 1.2 fbreader-optflags.patch, 1.3, 1.4 fbreader.spec, 1.7, 1.8 sources, 1.4, 1.5
- Next message (by thread): rpms/openbox/devel .cvsignore, 1.7, 1.8 openbox.spec, 1.29, 1.30 sources, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: jkratoch
Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17989
Modified Files:
gdb-6.3-inferior-notification-20050721.patch
gdb-6.5-bz109921-DW_AT_decl_file-test.patch
gdb-6.6-bz233852-attach-signalled.patch
gdb-6.7.1-upstream.patch gdb.spec
Added Files:
gdb-6.6-bz235197-fork-detach-info.patch
gdb-6.6-multifork-debugreg.patch
gdb-6.7-bz426600-DW_TAG_interface_type-fix.patch
gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
Removed Files:
gdb-6.6-bz234468-fork-detach-info.patch
gdb-6.6-multifork-debugreg-for-i386-and-x86_64.patch
Log Message:
* Mon Jan 7 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.7.1-7
- Backport the gcc-4.3 compatibility -Werror fixes.
- Fix documentation on hardware watchpoints wrt multiple threads.
- Rename the patch file for BZ 235197 from its former name 234468.
- Fix the vendora testcase `attach-32.exp' affecting the other tests results.
- Support DW_TAG_interface_type the same way as DW_TAG_class_type (BZ 426600).
gdb-6.6-bz235197-fork-detach-info.patch:
--- NEW FILE gdb-6.6-bz235197-fork-detach-info.patch ---
--- ./gdb/linux-nat.c 9 Feb 2007 20:52:16 -0000 1.56
+++ ./gdb/linux-nat.c 22 Apr 2007 17:20:25 -0000
@@ -378,9 +378,17 @@ child_follow_fork (struct target_ops *op
/* Detach new forked process? */
if (detach_fork)
{
+ static int advice_printed = 0;
+
+ target_terminal_ours ();
+ fprintf_filtered (gdb_stdlog,
+ _("[Detaching after fork from child process %d.%s]\n"),
+ child_pid, (advice_printed ? "" :
+ _(" (Try `set detach-on-fork off'.)")));
+ advice_printed = 1;
+
if (debug_linux_nat)
{
- target_terminal_ours ();
fprintf_filtered (gdb_stdlog,
"Detaching after fork from child process %d.\n",
child_pid);
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.base/fork-detach.c 22 Apr 2007 17:20:25 -0000
@@ -0,0 +1,57 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2007 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 2 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, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ Please email any bugs, comments, and/or additions to this file to:
+ bug-gdb at prep.ai.mit.edu */
+
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <assert.h>
+#include <stdlib.h>
+
+static void func (void)
+{
+}
+
+int main (void)
+{
+ pid_t child;
+
+ child = fork ();
+ switch (child)
+ {
+ case -1:
+ abort ();
+ case 0:
+ func ();
+ break;
+ default:
+ {
+/* We do not test the switching to the other fork by GDB `fork 1'. */
+#if 0
+ pid_t got;
+
+ got = waitpid (child, NULL, 0);
+ assert (got == child);
+#endif
+ break;
+ }
+ }
+ return 0;
+}
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.base/fork-detach.exp 22 Apr 2007 17:20:25 -0000
@@ -0,0 +1,43 @@
+# Copyright 2007 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 2 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile fork-detach
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ untested "Couldn't compile test program"
+ return -1
+}
+
+# Get things started.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+gdb_run_cmd
+# `Starting program: .*' prefix is available since gdb-6.7.
+gdb_test "" \
+ "\\\[Detaching after fork from child process.*Program exited normally\\..*" \
+ "Info message caught"
gdb-6.6-multifork-debugreg.patch:
--- NEW FILE gdb-6.6-multifork-debugreg.patch ---
ia64-linux-nat.c patch is missing here, port it either from RHEL-5 for 6.7.1 or
from the commented-out HEAD patch below.
s390x in RHEL-5 requires a patch but it is no longer required for
gdb-6.7.1-6.fc9 - the patch was not ported.
2007-10-14 Jan Kratochvil <jan.kratochvil at redhat.com>
Handle multiple different PIDs for the DR registers.
* i386-nat.c: Include "inferior.h".
(struct dr_mirror_status, dr_mirror_active, dr_mirror_fetch): New.
(dr_mirror, dr_status_mirror, dr_control_mirror, dr_ref_count):
Redefined using DR_MIRROR_ACTIVE.
(i386_cleanup_dregs): Clear the DR_MIRROR_ACTIVE content instead.
(i386_show_dr, i386_insert_aligned_watchpoint)
(i386_remove_aligned_watchpoint, i386_stopped_data_address)
(i386_stopped_by_hwbp): Call DR_MIRROR_FETCH.
* Makefile.in (i386-nat.o): Update dependencies.
2007-12-30 Jan Kratochvil <jan.kratochvil at redhat.com>
* gdb.base/watchpoint-fork.exp, gdb.base/watchpoint-fork.c: New files.
[ Backported for GDB-6.6 (only removed the new file inclusion). ]
2007-09-16 Daniel Jacobowitz <dan at codesourcery.com>
Jeff Johnston <jjohnstn at redhat.com>
* gdb.texinfo (Setting Watchpoints): Adjust warning text about
multi-threaded watchpoints.
2007-12-15 Jan Kratochvil <jan.kratochvil at redhat.com>
* gdb.texinfo (Setting Watchpoints): New paragraph on the software
watchpoints safety wrt `set scheduler-locking'.
#--- ./gdb/ia64-linux-nat.c 13 Oct 2007 00:49:15 -0000 1.43
#+++ ./gdb/ia64-linux-nat.c 29 Dec 2007 23:52:05 -0000
#@@ -493,7 +493,49 @@ enable_watchpoints_in_psr (ptid_t ptid)
# }
# }
#
#-static long debug_registers[8];
#+struct dr_mirror_status
#+ {
#+ /* Cyclic list. */
#+ struct dr_mirror_status *next;
#+ long lwp;
#+ long content[8];
#+ };
#+struct dr_mirror_status *dr_mirror_active;
#+#define debug_registers (dr_mirror_active->content)
#+
#+static void
#+dr_mirror_fetch (void)
#+{
#+ long lwp;
#+ int i;
#+
#+ lwp = ptid_get_lwp (inferior_ptid);
#+ if (lwp == 0)
#+ lwp = ptid_get_pid (inferior_ptid);
#+
#+ if (dr_mirror_active == NULL)
#+ {
#+ dr_mirror_active = xzalloc (sizeof *dr_mirror_active);
#+ dr_mirror_active->next = dr_mirror_active;
#+ }
#+ else
#+ {
#+ struct dr_mirror_status *first = dr_mirror_active;
#+ do
#+ {
#+ if (dr_mirror_active->lwp == lwp)
#+ return;
#+ dr_mirror_active = dr_mirror_active->next;
#+ }
#+ while (dr_mirror_active != first);
#+ dr_mirror_active = xzalloc (sizeof *dr_mirror_active);
#+ dr_mirror_active->next = first->next;
#+ first->next = dr_mirror_active;
#+ }
#+ dr_mirror_active->lwp = lwp;
#+
#+ /* All the registers left 0. */
#+}
#
# static void
# store_debug_register (ptid_t ptid, int idx, long val)
#@@ -538,6 +580,8 @@ ia64_linux_insert_watchpoint (CORE_ADDR
# long dbr_addr, dbr_mask;
# int max_watchpoints = 4;
#
#+ dr_mirror_fetch ();
#+
# if (len <= 0 || !is_power_of_2 (len))
# return -1;
#
#@@ -590,6 +634,8 @@ ia64_linux_remove_watchpoint (CORE_ADDR
# long dbr_addr, dbr_mask;
# int max_watchpoints = 4;
#
#+ dr_mirror_fetch ();
#+
# if (len <= 0 || !is_power_of_2 (len))
# return -1;
#
#@@ -621,6 +667,8 @@ ia64_linux_new_thread (ptid_t ptid)
# {
# int i, any;
#
#+ dr_mirror_fetch ();
#+
# any = 0;
# for (i = 0; i < 8; i++)
# {
--- ./gdb/i386-nat.c 23 Aug 2007 18:08:34 -0000 1.16
+++ ./gdb/i386-nat.c 14 Oct 2007 15:00:31 -0000
@@ -165,11 +166,22 @@
/* Mirror the inferior's DRi registers. We keep the status and
control registers separated because they don't hold addresses. */
-static CORE_ADDR dr_mirror[DR_NADDR];
-static unsigned dr_status_mirror, dr_control_mirror;
+struct dr_mirror_status
+ {
+ /* Cyclic list. */
+ struct dr_mirror_status *next;
+ long lwp;
+ CORE_ADDR addr[DR_NADDR];
+ unsigned status, control;
+ int ref_count[DR_NADDR];
+ };
+struct dr_mirror_status *dr_mirror_active;
+#define dr_mirror (dr_mirror_active->addr)
+#define dr_status_mirror (dr_mirror_active->status)
+#define dr_control_mirror (dr_mirror_active->control)
/* Reference counts for each debug register. */
-static int dr_ref_count[DR_NADDR];
+#define dr_ref_count (dr_mirror_active->ref_count)
/* Whether or not to print the mirrored debug registers. */
static int maint_show_dr;
@@ -218,15 +230,19 @@ static int i386_handle_nonaligned_watchp
void
i386_cleanup_dregs (void)
{
- int i;
+ struct dr_mirror_status *first = dr_mirror_active;
- ALL_DEBUG_REGISTERS(i)
+ if (first == NULL)
+ return;
+ do
{
- dr_mirror[i] = 0;
- dr_ref_count[i] = 0;
+ struct dr_mirror_status *next = dr_mirror_active->next;
+
+ xfree (dr_mirror_active);
+ dr_mirror_active = next;
}
- dr_control_mirror = 0;
- dr_status_mirror = 0;
+ while (dr_mirror_active != first);
+ dr_mirror_active = NULL;
}
/* Reset all debug registers at each new startup to avoid missing
@@ -238,6 +254,40 @@ child_post_startup_inferior (ptid_t ptid
i386_cleanup_dregs ();
}
+static void
+dr_mirror_fetch (void)
+{
+ long lwp;
+ int i;
+
+ lwp = ptid_get_lwp (inferior_ptid);
+ if (lwp == 0)
+ lwp = ptid_get_pid (inferior_ptid);
+
+ if (dr_mirror_active == NULL)
+ {
+ dr_mirror_active = xzalloc (sizeof *dr_mirror_active);
+ dr_mirror_active->next = dr_mirror_active;
+ }
+ else
+ {
+ struct dr_mirror_status *first = dr_mirror_active;
+ do
+ {
+ if (dr_mirror_active->lwp == lwp)
+ return;
+ dr_mirror_active = dr_mirror_active->next;
+ }
+ while (dr_mirror_active != first);
+ dr_mirror_active = xzalloc (sizeof *dr_mirror_active);
+ dr_mirror_active->next = first->next;
+ first->next = dr_mirror_active;
+ }
+ dr_mirror_active->lwp = lwp;
+
+ /* All the registers left 0. */
+}
+
/* Print the values of the mirrored debug registers. This is called
when maint_show_dr is non-zero. To set that up, type "maint
show-debug-regs" at GDB's prompt. */
@@ -248,6 +298,8 @@ i386_show_dr (const char *func, CORE_ADD
{
int i;
+ dr_mirror_fetch ();
+
puts_unfiltered (func);
if (addr || len)
printf_unfiltered (" (addr=%lx, len=%d, type=%s)",
@@ -337,6 +389,8 @@ i386_insert_aligned_watchpoint (CORE_ADD
{
int i;
+ dr_mirror_fetch ();
+
/* First, look for an occupied debug register with the same address
and the same RW and LEN definitions. If we find one, we can
reuse it for this watchpoint as well (and save a register). */
@@ -397,6 +451,8 @@ i386_remove_aligned_watchpoint (CORE_ADD
{
int i, retval = -1;
+ dr_mirror_fetch ();
+
ALL_DEBUG_REGISTERS(i)
{
if (!I386_DR_VACANT (i)
@@ -569,6 +625,8 @@ i386_stopped_data_address (CORE_ADDR *ad
int i;
int rc = 0;
+ dr_mirror_fetch ();
+
dr_status_mirror = I386_DR_LOW_GET_STATUS ();
ALL_DEBUG_REGISTERS(i)
@@ -610,6 +668,8 @@ i386_stopped_by_hwbp (void)
{
int i;
+ dr_mirror_fetch ();
+
dr_status_mirror = I386_DR_LOW_GET_STATUS ();
if (maint_show_dr)
i386_show_dr ("stopped_by_hwbp", 0, 0, hw_execute);
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.base/watchpoint-fork.c 14 Oct 2007 15:00:32 -0000
@@ -0,0 +1,73 @@
+/* Test case for forgotten hw-watchpoints after fork()-off of a process.
+
+ Copyright 2007
+ Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <assert.h>
+#include <unistd.h>
+#include <sys/wait.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+static volatile int var;
+
+static void breakpoint (void)
+{
+}
+
+static void forkoff (int nr)
+{
+ pid_t child, pid_got;
+ int exit_code = 42 + nr;
+ int status;
+
+ child = fork ();
+ switch (child)
+ {
+ case -1:
+ assert (0);
+ case 0:
+ printf ("child%d: %d\n", nr, (int) getpid ());
+ breakpoint ();
+ exit (exit_code);
+ default:
+ printf ("parent%d: %d\n", nr, (int) child);
+ pid_got = wait (&status);
+ assert (pid_got == child);
+ assert (WIFEXITED (status));
+ assert (WEXITSTATUS (status) == exit_code);
+ }
+}
+
+int main (void)
+{
+ setbuf (stdout, NULL);
+ printf ("main: %d\n", (int) getpid ());
+
+ /* Hardware watchpoints got disarmed here. */
+ forkoff (1);
+ /* This watchpoint got lost before. */
+ var++;
+ /* A sanity check for double hardware watchpoints removal. */
+ forkoff (2);
+ var++;
+
+ return 0;
+}
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.base/watchpoint-fork.exp 14 Oct 2007 15:00:32 -0000
@@ -0,0 +1,53 @@
+# Copyright 2007 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/>.
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile watchpoint-fork
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ 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 {
+ gdb_suppress_tests;
+}
+
+# Install the watchpoint only after getting into MAIN - workaround some PPC
+# problem.
+gdb_test "watch var" "atchpoint 2: var"
+
+# It is never hit but it should not be left over in the fork()ed-off child.
+gdb_breakpoint "breakpoint"
+
+gdb_test "continue" \
+ "atchpoint 2: var.*Old value = 0.*New value = 1.*" "watchpoint first hit"
+gdb_test "continue" \
+ "atchpoint 2: var.*Old value = 1.*New value = 2.*" "watchpoint second hit"
+gdb_test "continue" "Continuing..*Program exited normally." "finish"
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.434
retrieving revision 1.435
diff -u -r1.434 -r1.435
--- src/gdb/doc/gdb.texinfo 2007/09/28 11:09:55 1.434
+++ src/gdb/doc/gdb.texinfo 2007/10/01 00:17:58 1.435
@@ -3346,20 +3346,13 @@
way of doing that would be to set a code breakpoint at the entry to the
@code{main} function and when it breaks, set all the watchpoints.
- at quotation
@cindex watchpoints and threads
@cindex threads and watchpoints
- at emph{Warning:} In multi-thread programs, watchpoints have only limited
-usefulness. With the current watchpoint implementation, @value{GDBN}
-can only watch the value of an expression @emph{in a single thread}. If
-you are confident that the expression can only change due to the current
-thread's activity (and if you are also confident that no other thread
-can become current), then you can use watchpoints as usual. However,
- at value{GDBN} may not notice when a non-current thread's activity changes
-the expression.
+In multi-threaded programs, watchpoints will detect changes to the
+watched expression from every thread.
- at c FIXME: this is almost identical to the previous paragraph.
- at emph{HP-UX Warning:} In multi-thread programs, software watchpoints
+ at quotation
+ at emph{Warning:} In multi-threaded programs, software watchpoints
have only limited usefulness. If @value{GDBN} creates a software
watchpoint, it can only watch the value of an expression @emph{in a
single thread}. If you are confident that the expression can only
--- gdb-6.5/gdb/doc/gdb.texinfo-orig 2007-12-15 13:25:14.000000000 +0100
+++ gdb-6.5/gdb/doc/gdb.texinfo 2007-12-15 13:45:25.000000000 +0100
@@ -3261,6 +3261,14 @@
software watchpoints as usual. However, @value{GDBN} may not notice
when a non-current thread's activity changes the expression. (Hardware
watchpoints, in contrast, watch an expression in all threads.)
+
+Software watchpoints single-step the current thread to track the changes.
+Other threads are left freely running on @code{continue}; therefore, their
+changes cannot be caught. To get more reliable software watchpoints, please
+use @code{set scheduler-locking on}. The default for Red Hat/Fedora
+ at value{GDBN} is @code{set scheduler-locking step}, which makes the software
+watchpoints safe for the @code{step} command, but not for the @code{continue}
+command. @xref{Thread Stops}.
@end quotation
@xref{set remote hardware-watchpoint-limit}.
gdb-6.7-bz426600-DW_TAG_interface_type-fix.patch:
--- NEW FILE gdb-6.7-bz426600-DW_TAG_interface_type-fix.patch ---
http://sourceware.org/ml/gdb-patches/2007-12/msg00397.html
http://sourceware.org/ml/gdb-cvs/2007-12/msg00123.html
2007-12-22 Jan Kratochvil <jan.kratochvil at redhat.com>
* dwarf2read.c (scan_partial_symbols partial_die_parent_scope)
(add_partial_symbol, pdi_needs_namespace, process_die)
(is_type_tag_for_partial, load_partial_dies, new_symbol)
(read_type_die, determine_prefix): Extend the current code of
`DW_TAG_class_type' also for `DW_TAG_interface_type'.
2007-12-28 Jan Kratochvil <jan.kratochvil at redhat.com>
* dwarf2read.c (fixup_partial_die): Provide full
`DW_TAG_class_type'-type backing for `DW_TAG_interface_type', even for
namespaces which should not apply for Java `DW_TAG_interface_type'.
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.242
retrieving revision 1.243
diff -u -r1.242 -r1.243
--- src/gdb/dwarf2read.c 2007/12/17 18:38:30 1.242
+++ src/gdb/dwarf2read.c 2007/12/22 20:58:30 1.243
@@ -1747,6 +1747,7 @@
}
break;
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_structure_type:
if (!pdi->is_declaration)
{
@@ -1829,6 +1830,7 @@
if (parent->tag == DW_TAG_namespace
|| parent->tag == DW_TAG_structure_type
|| parent->tag == DW_TAG_class_type
+ || parent->tag == DW_TAG_interface_type
|| parent->tag == DW_TAG_union_type)
{
if (grandparent_scope == NULL)
@@ -1976,6 +1978,7 @@
0, (CORE_ADDR) 0, cu->language, objfile);
break;
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_structure_type:
case DW_TAG_union_type:
case DW_TAG_enumeration_type:
@@ -2057,6 +2060,7 @@
case DW_TAG_namespace:
case DW_TAG_typedef:
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_structure_type:
case DW_TAG_union_type:
case DW_TAG_enumeration_type:
@@ -2676,6 +2680,7 @@
read_lexical_block_scope (die, cu);
break;
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_structure_type:
case DW_TAG_union_type:
read_structure_type (die, cu);
@@ -5403,6 +5408,7 @@
#endif
case DW_TAG_base_type:
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_enumeration_type:
case DW_TAG_structure_type:
case DW_TAG_subrange_type:
@@ -5608,6 +5614,7 @@
|| last_die->tag == DW_TAG_enumeration_type
|| (cu->language != language_c
&& (last_die->tag == DW_TAG_class_type
+ || last_die->tag == DW_TAG_interface_type
|| last_die->tag == DW_TAG_structure_type
|| last_die->tag == DW_TAG_union_type))))
{
@@ -7358,6 +7365,7 @@
(FIXME?) */
break;
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_structure_type:
case DW_TAG_union_type:
case DW_TAG_set_type:
@@ -7677,6 +7685,7 @@
switch (die->tag)
{
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_structure_type:
case DW_TAG_union_type:
read_structure_type (die, cu);
@@ -7781,6 +7790,7 @@
}
break;
case DW_TAG_class_type:
+ case DW_TAG_interface_type:
case DW_TAG_structure_type:
{
if (parent->type != NULL && TYPE_TAG_NAME (parent->type) != NULL)
Index: ./gdb/dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.245
diff -u -p -r1.245 dwarf2read.c
--- ./gdb/dwarf2read.c 26 Dec 2007 12:36:18 -0000 1.245
+++ ./gdb/dwarf2read.c 27 Dec 2007 23:25:49 -0000
@@ -5887,7 +5887,8 @@ fixup_partial_die (struct partial_die_in
/* Set default names for some unnamed DIEs. */
if (part_die->name == NULL && (part_die->tag == DW_TAG_structure_type
- || part_die->tag == DW_TAG_class_type))
+ || part_die->tag == DW_TAG_class_type
+ || part_die->tag == DW_TAG_interface_type))
part_die->name = "(anonymous class)";
if (part_die->name == NULL && part_die->tag == DW_TAG_namespace)
@@ -5895,6 +5896,7 @@ fixup_partial_die (struct partial_die_in
if (part_die->tag == DW_TAG_structure_type
|| part_die->tag == DW_TAG_class_type
+ || part_die->tag == DW_TAG_interface_type
|| part_die->tag == DW_TAG_union_type)
guess_structure_name (part_die, cu);
}
gdb-6.7-bz426600-DW_TAG_interface_type-test.patch:
--- NEW FILE gdb-6.7-bz426600-DW_TAG_interface_type-test.patch ---
http://sourceware.org/ml/gdb-patches/2007-12/msg00397.html
2007-12-22 Jan Kratochvil <jan.kratochvil at redhat.com>
* gdb.arch/i386-interface.S, gdb.arch/i386-interface.exp: New files.
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.arch/i386-interface.S 22 Dec 2007 19:07:28 -0000
@@ -0,0 +1,628 @@
+/* Copyright 2007 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/>.
+
+ Please email any bugs, comments, and/or additions to this file to:
+ bug-gdb at gnu.org
+
+ This file is part of the gdb testsuite.
+
+ This file was produced by:
+ $ gcj -S interface.java -ggdb2 -Wall -m32
+ from the .java file:
+ interface Interface
+ {
+ }
+ class Class implements Interface
+ {
+ }
+*/
+
+ .file "cc28Pp2B.jar"
+ .section .debug_abbrev,"", at progbits
+.Ldebug_abbrev0:
+ .section .debug_info,"", at progbits
+.Ldebug_info0:
+ .section .debug_line,"", at progbits
+.Ldebug_line0:
+ .text
+.Ltext0:
+ .local _MT_Interface
+ .comm _MT_Interface,0,4
+ .data
+ .align 4
+ .type _catch_classes_Interface, @object
+ .size _catch_classes_Interface, 24
+_catch_classes_Interface:
+ .zero 24
+ .section .rodata
+ .align 2
+ .type _Utf1, @object
+ .size _Utf1, 4
+_Utf1:
+ .value 36121
+ .value 9
+ .ascii "Interface"
+ .zero 1
+.globl _ZN9Interface6class$E
+ .data
+ .align 32
+ .type _ZN9Interface6class$E, @object
+ .size _ZN9Interface6class$E, 144
+_ZN9Interface6class$E:
+ .long _ZTVN4java4lang5ClassE+8
+ .long 403000
+ .long _Utf1
+ .value 1536
+ .zero 2
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long _MT_Interface
+ .value 0
+ .value 6
+ .long 0
+ .long 4
+ .value 0
+ .value 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long _catch_classes_Interface
+ .long 0
+ .long 0
+ .value 0
+ .byte 1
+ .zero 1
+ .long 0
+ .value 0
+ .zero 2
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .hidden _ZN9Interface7class$$E
+.globl _ZN9Interface7class$$E
+ .section .rodata
+ .align 4
+ .type _ZN9Interface7class$$E, @object
+ .size _ZN9Interface7class$$E, 4
+_ZN9Interface7class$$E:
+ .long _ZN9Interface6class$E
+ .text
+ .align 2
+.globl _ZN5ClassC1Ev
+ .type _ZN5ClassC1Ev, @function
+_ZN5ClassC1Ev:
+.LFB2:
+ pushl %ebp
+.LCFI0:
+ movl %esp, %ebp
+.LCFI1:
+ subl $24, %esp
+.LCFI2:
+.LBB2:
+#if 0
+ .file 1 "interface.java"
+#else
+ .file "interface.java"
+#endif
+ .loc 1 4 0
+ movl 8(%ebp), %eax
+ movl %eax, -4(%ebp)
+ movl -4(%ebp), %eax
+ movl %eax, (%esp)
+ call _ZN4java4lang6ObjectC1Ev
+.LBE2:
+ leave
+ ret
+.LFE2:
+ .size _ZN5ClassC1Ev, .-_ZN5ClassC1Ev
+ .hidden _ZTVN5ClassE
+.globl _ZTVN5ClassE
+ .data
+ .align 32
+ .type _ZTVN5ClassE, @object
+ .size _ZTVN5ClassE, 40
+_ZTVN5ClassE:
+ .long 0
+ .long 0
+ .long _ZN5Class6class$E
+ .long 4
+ .long _ZN4java4lang6Object8finalizeEJvv
+ .long _ZN4java4lang6Object8hashCodeEJiv
+ .long _ZN4java4lang6Object6equalsEJbPS1_
+ .long _ZN4java4lang6Object8toStringEJPNS0_6StringEv
+ .long _ZN4java4lang6Object5cloneEJPS1_v
+ .long _ZN4java4lang6Object22throwNoSuchMethodErrorEJvv
+ .set .L_ZN5ClassC1Ev0,_ZN5ClassC1Ev
+ .section .rodata
+ .align 2
+ .type _Utf2, @object
+ .size _Utf2, 4
+_Utf2:
+ .value 626
+ .value 6
+ .ascii "<init>"
+ .zero 1
+ .align 2
+ .type _Utf3, @object
+ .size _Utf3, 4
+_Utf3:
+ .value 39797
+ .value 3
+ .ascii "()V"
+ .zero 1
+ .data
+ .align 4
+ .type _MT_Class, @object
+ .size _MT_Class, 20
+_MT_Class:
+ .long _Utf2
+ .long _Utf3
+ .value 16384
+ .value -1
+ .long .L_ZN5ClassC1Ev0
+ .long 0
+ .align 4
+ .type _IF_Class, @object
+ .size _IF_Class, 4
+_IF_Class:
+ .long _ZN9Interface6class$E
+ .align 4
+ .type _catch_classes_Class, @object
+ .size _catch_classes_Class, 24
+_catch_classes_Class:
+ .zero 24
+ .section .rodata
+ .align 2
+ .type _Utf4, @object
+ .size _Utf4, 4
+_Utf4:
+ .value 47448
+ .value 5
+ .ascii "Class"
+ .zero 1
+.globl _ZN5Class6class$E
+ .data
+ .align 32
+ .type _ZN5Class6class$E, @object
+ .size _ZN5Class6class$E, 144
+_ZN5Class6class$E:
+ .long _ZTVN4java4lang5ClassE+8
+ .long 403000
+ .long _Utf4
+ .value 32
+ .zero 2
+ .long _ZN4java4lang6Object6class$E
+ .long 0
+ .long 0
+ .long 0
+ .long _MT_Class
+ .value 1
+ .value 6
+ .long 0
+ .long 4
+ .value 0
+ .value 0
+ .long _ZTVN5ClassE+8
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long _catch_classes_Class
+ .long _IF_Class
+ .long 0
+ .value 1
+ .byte 1
+ .zero 1
+ .long 0
+ .value 0
+ .zero 2
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .hidden _ZN5Class7class$$E
+.globl _ZN5Class7class$$E
+ .section .rodata
+ .align 4
+ .type _ZN5Class7class$$E, @object
+ .size _ZN5Class7class$$E, 4
+_ZN5Class7class$$E:
+ .long _ZN5Class6class$E
+ .section .jcr,"aw", at progbits
+ .align 4
+ .long _ZN9Interface6class$E
+ .long _ZN5Class6class$E
+ .section .debug_frame,"", at progbits
+.Lframe0:
+ .long .LECIE0-.LSCIE0
+.LSCIE0:
+ .long 0xffffffff
+ .byte 0x1
+ .string ""
+ .uleb128 0x1
+ .sleb128 -4
+ .byte 0x8
+ .byte 0xc
+ .uleb128 0x4
+ .uleb128 0x4
+ .byte 0x88
+ .uleb128 0x1
+ .align 4
+.LECIE0:
+.LSFDE0:
+ .long .LEFDE0-.LASFDE0
+.LASFDE0:
+ .long .Lframe0
+ .long .LFB2
+ .long .LFE2-.LFB2
+ .byte 0x4
+ .long .LCFI0-.LFB2
+ .byte 0xe
+ .uleb128 0x8
+ .byte 0x85
+ .uleb128 0x2
+ .byte 0x4
+ .long .LCFI1-.LCFI0
+ .byte 0xd
+ .uleb128 0x5
+ .align 4
+.LEFDE0:
+ .section .eh_frame,"a", at progbits
+.Lframe1:
+ .long .LECIE1-.LSCIE1
+.LSCIE1:
+ .long 0x0
+ .byte 0x1
+.globl __gcj_personality_v0
+ .string "zP"
+ .uleb128 0x1
+ .sleb128 -4
+ .byte 0x8
+ .uleb128 0x5
+ .byte 0x0
+ .long __gcj_personality_v0
+ .byte 0xc
+ .uleb128 0x4
+ .uleb128 0x4
+ .byte 0x88
+ .uleb128 0x1
+ .align 4
+.LECIE1:
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1
+.LASFDE1:
+ .long .LASFDE1-.Lframe1
+ .long .LFB2
+ .long .LFE2-.LFB2
+ .uleb128 0x0
+ .byte 0x4
+ .long .LCFI0-.LFB2
+ .byte 0xe
+ .uleb128 0x8
+ .byte 0x85
+ .uleb128 0x2
+ .byte 0x4
+ .long .LCFI1-.LCFI0
+ .byte 0xd
+ .uleb128 0x5
+ .align 4
+.LEFDE1:
+ .text
+.Letext0:
+ .section .debug_loc,"", at progbits
+.Ldebug_loc0:
+.LLST0:
+ .long .LFB2-.Ltext0
+ .long .LCFI0-.Ltext0
+ .value 0x2
+ .byte 0x74
+ .sleb128 4
+ .long .LCFI0-.Ltext0
+ .long .LCFI1-.Ltext0
+ .value 0x2
+ .byte 0x74
+ .sleb128 8
+ .long .LCFI1-.Ltext0
+ .long .LFE2-.Ltext0
+ .value 0x2
+ .byte 0x75
+ .sleb128 8
+ .long 0x0
+ .long 0x0
+ .section .debug_info
+ .long 0x117
+ .value 0x2
+ .long .Ldebug_abbrev0
+ .byte 0x4
+ .uleb128 0x1
+ .string "GNU Java 4.3.0 20071221 (experimental)"
+ .byte 0xb
+ .string "interface.java"
+ .string "/home/jkratoch/redhat/bz371831"
+ .long .Ltext0
+ .long .Letext0
+ .long .Ldebug_line0
+ .uleb128 0x2
+ .string "Interface"
+ .byte 0x4
+ .byte 0x1
+ .byte 0x0
+ .long 0x8e
+ .long 0x8e
+ .uleb128 0x3
+ .long 0x8e
+ .byte 0x2
+ .byte 0x23
+ .uleb128 0x0
+ .byte 0x1
+ .byte 0x0
+ .uleb128 0x4
+ .string "java.lang.Object"
+ .byte 0x1
+ .uleb128 0x5
+ .string "Class"
+ .byte 0x4
+ .byte 0x1
+ .byte 0x0
+ .long 0x8e
+ .long 0xe8
+ .uleb128 0x3
+ .long 0x8e
+ .byte 0x2
+ .byte 0x23
+ .uleb128 0x0
+ .byte 0x1
+ .uleb128 0x6
+ .long 0x6e
+ .byte 0x2
+ .byte 0x23
+ .uleb128 0x0
+ .byte 0x1
+ .byte 0x1
+ .uleb128 0x7
+ .byte 0x1
+ .string "<init>"
+ .byte 0x1
+ .byte 0x0
+ .string "_ZN5ClassC1Ev"
+ .byte 0x1
+ .uleb128 0x8
+ .long 0xe8
+ .byte 0x1
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x9
+ .byte 0x4
+ .long 0xa1
+ .uleb128 0xa
+ .long 0xc6
+ .long .LFB2
+ .long .LFE2
+ .long .LLST0
+ .long 0x114
+ .uleb128 0xb
+ .long 0xe8
+ .byte 0x2
+ .byte 0x91
+ .sleb128 0
+ .uleb128 0xc
+ .long 0x114
+ .byte 0x2
+ .byte 0x91
+ .sleb128 -12
+ .byte 0x0
+ .uleb128 0x9
+ .byte 0x4
+ .long 0x8e
+ .byte 0x0
+ .section .debug_abbrev
+ .uleb128 0x1
+ .uleb128 0x11
+ .byte 0x1
+ .uleb128 0x25
+ .uleb128 0x8
+ .uleb128 0x13
+ .uleb128 0xb
+ .uleb128 0x3
+ .uleb128 0x8
+ .uleb128 0x1b
+ .uleb128 0x8
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x12
+ .uleb128 0x1
+ .uleb128 0x10
+ .uleb128 0x6
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x2
+ .uleb128 0x38
+ .byte 0x1
+ .uleb128 0x3
+ .uleb128 0x8
+ .uleb128 0xb
+ .uleb128 0xb
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x1d
+ .uleb128 0x13
+ .uleb128 0x1
+ .uleb128 0x13
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x3
+ .uleb128 0x1c
+ .byte 0x0
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x38
+ .uleb128 0xa
+ .uleb128 0x32
+ .uleb128 0xb
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x4
+ .uleb128 0x2
+ .byte 0x0
+ .uleb128 0x3
+ .uleb128 0x8
+ .uleb128 0x3c
+ .uleb128 0xc
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x5
+ .uleb128 0x2
+ .byte 0x1
+ .uleb128 0x3
+ .uleb128 0x8
+ .uleb128 0xb
+ .uleb128 0xb
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x1d
+ .uleb128 0x13
+ .uleb128 0x1
+ .uleb128 0x13
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x6
+ .uleb128 0x1c
+ .byte 0x0
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x38
+ .uleb128 0xa
+ .uleb128 0x4c
+ .uleb128 0xb
+ .uleb128 0x32
+ .uleb128 0xb
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x7
+ .uleb128 0x2e
+ .byte 0x1
+ .uleb128 0x3f
+ .uleb128 0xc
+ .uleb128 0x3
+ .uleb128 0x8
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x2007
+ .uleb128 0x8
+ .uleb128 0x3c
+ .uleb128 0xc
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x8
+ .uleb128 0x5
+ .byte 0x0
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x34
+ .uleb128 0xc
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x9
+ .uleb128 0xf
+ .byte 0x0
+ .uleb128 0xb
+ .uleb128 0xb
+ .uleb128 0x49
+ .uleb128 0x13
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xa
+ .uleb128 0x2e
+ .byte 0x1
+ .uleb128 0x47
+ .uleb128 0x13
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x12
+ .uleb128 0x1
+ .uleb128 0x40
+ .uleb128 0x6
+ .uleb128 0x1
+ .uleb128 0x13
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xb
+ .uleb128 0x5
+ .byte 0x0
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x2
+ .uleb128 0xa
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xc
+ .uleb128 0x34
+ .byte 0x0
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x2
+ .uleb128 0xa
+ .byte 0x0
+ .byte 0x0
+ .byte 0x0
+ .section .debug_pubnames,"", at progbits
+ .long 0x15
+ .value 0x2
+ .long .Ldebug_info0
+ .long 0x11b
+ .long 0xee
+ .string "()"
+ .long 0x0
+ .section .debug_aranges,"", at progbits
+ .long 0x1c
+ .value 0x2
+ .long .Ldebug_info0
+ .byte 0x4
+ .byte 0x0
+ .value 0x0
+ .value 0x0
+ .long .Ltext0
+ .long .Letext0-.Ltext0
+ .long 0x0
+ .long 0x0
+ .ident "GCC: (GNU) 4.3.0 20071221 (experimental)"
+ .section .note.GNU-stack,"", at progbits
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.arch/i386-interface.exp 22 Dec 2007 19:07:28 -0000
@@ -0,0 +1,66 @@
+# Copyright 2007 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/>.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb at gnu.org
+
+# This file is part of the gdb testsuite.
+
+# Test basis recognization of DW_TAG_interface_type.
+# GCC java_classify_record() produces it if returns RECORD_IS_INTERFACE.
+
+if $tracelevel {
+ strace $tracelevel
+}
+
+set prms_id 0
+set bug_id 0
+
+if {![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"]} then {
+ verbose "Skipping i386 Java DW_TAG_interface_type test."
+ return
+}
+
+set testfile "i386-interface"
+set srcfile ${testfile}.S
+set binfile ${objdir}/${subdir}/${testfile}.o
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {debug additional_flags=-m32}] != "" } {
+ untested i386-gnu-cfi.exp
+ return -1
+}
+
+# Get things started.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+gdb_test "set language java"
+
+set test "ptype Interface"
+gdb_test_multiple $test $test {
+ -re "type = class Interface *extends java.lang.Object \{" {
+ pass $test
+ }
+}
+
+set test "ptype Class"
+gdb_test_multiple $test $test {
+ -re "type = class Class *extends java.lang.Object implements Interface \{" {
+ pass $test
+ }
+}
gdb-6.3-inferior-notification-20050721.patch:
Index: gdb-6.3-inferior-notification-20050721.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-inferior-notification-20050721.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-inferior-notification-20050721.patch 11 Jul 2006 06:33:02 -0000 1.2
+++ gdb-6.3-inferior-notification-20050721.patch 7 Jan 2008 15:10:23 -0000 1.3
@@ -1,9 +1,13 @@
2005-07-21 Jeff Johnston <jjohnstn at redhat.com>
- * gdb.base/attach-32.exp: New test for attaching in 32-bit
- mode on 64-bit systems.
- * gdb.base/attach-32.c: Ditto.
- * gdb.base/attach-32b.c: Ditto.
+ * gdb.base/attach-32.exp: New test for attaching in 32-bit
+ mode on 64-bit systems.
+ * gdb.base/attach-32.c: Ditto.
+ * gdb.base/attach-32b.c: Ditto.
+
+2007-12-26 Jan Kratochvil <jan.kratochvil at redhat.com>
+
+ * gdb.base/attach-32.exp: Fix forgotten $GDBFLAGS as set.
--- gdb-6.3/gdb/testsuite/gdb.base/attach-32.c.fix3 2005-07-21 14:23:50.000000000 -0400
+++ gdb-6.3/gdb/testsuite/gdb.base/attach-32.c 2005-07-21 14:05:56.000000000 -0400
@@ -30,7 +34,7 @@
+}
--- gdb-6.3/gdb/testsuite/gdb.base/attach-32.exp.fix3 2005-07-21 14:23:45.000000000 -0400
+++ gdb-6.3/gdb/testsuite/gdb.base/attach-32.exp 2005-07-21 17:58:28.000000000 -0400
-@@ -0,0 +1,247 @@
+@@ -0,0 +1,252 @@
+# Copyright 2005 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
@@ -251,9 +255,12 @@
+ # different due to the way fork/exec works.
+ set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
+}
-+set GDBFLAGS "--pid=$testpid"
+
++set GDBFLAGS_orig $GDBFLAGS
++set GDBFLAGS "--pid=$testpid"
+gdb_start
++set GDBFLAGS $GDBFLAGS_orig
++
+gdb_reinitialize_dir $srcdir/$subdir
+
+# This is a test of gdb's ability to attach to a running process.
@@ -270,9 +277,11 @@
+ # different due to the way fork/exec works.
+ set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
+}
-+set GDBFLAGS "--pid=$testpid"
+
++set GDBFLAGS_orig $GDBFLAGS
++set GDBFLAGS "--pid=$testpid"
+gdb_start
++set GDBFLAGS $GDBFLAGS_orig
+
+gdb_reinitialize_dir $srcdir/$subdir
+do_call_attach_tests
gdb-6.5-bz109921-DW_AT_decl_file-test.patch:
Index: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz109921-DW_AT_decl_file-test.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz109921-DW_AT_decl_file-test.patch 9 Jan 2007 11:35:44 -0000 1.1
+++ gdb-6.5-bz109921-DW_AT_decl_file-test.patch 7 Jan 2008 15:10:23 -0000 1.2
@@ -1,12 +1,21 @@
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=109921
+It is duplicite to its upstream variant:
+http://sourceware.org/ml/gdb-cvs/2007-01/msg00157.html
+http://sourceware.org/ml/gdb-patches/2007-01/msg00434.html
+2007-01-21 Jan Kratochvil <jan.kratochvil at redhat.com>
+ Daniel Jacobowitz <dan at codesourcery.com>
+
+ * gdb.base/included.c, gdb.base/included.exp,
+ gdb.base/included.h: New files.
+
+------------------------------------------------------------------------------
2007-01-09 Jan Kratochvil <jan.kratochvil at redhat.com>
* gdb.dwarf2/dw2-included.exp, gdb.dwarf2/dw2-included.c,
gdb.dwarf2/dw2-included.h: New files.
-
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-included.c 2 Jan 2007 00:20:27 -0000
@@ -0,0 +1,26 @@
gdb-6.6-bz233852-attach-signalled.patch:
Index: gdb-6.6-bz233852-attach-signalled.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-bz233852-attach-signalled.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- gdb-6.6-bz233852-attach-signalled.patch 23 Sep 2007 15:42:37 -0000 1.4
+++ gdb-6.6-bz233852-attach-signalled.patch 7 Jan 2008 15:10:23 -0000 1.5
@@ -71,17 +71,7 @@
int status;
if (ptrace (PTRACE_ATTACH, GET_LWP (ptid), 0, 0) < 0)
-@@ -1002,45 +1012,23 @@ lin_lwp_attach_lwp (ptid_t ptid, int ver
- creation is interrupted; as of Linux 2.6.19, a kernel
- bug may place threads in the thread list and then fail
- to create them. */
-- warning (_("Can't attach %s: %s"), target_pid_to_str (ptid),
-- safe_strerror (errno));
-- return -1;
-+ error (_("Can't attach %s: %s"), target_pid_to_str (ptid),
-+ safe_strerror (errno));
- }
-
+@@ -1002,37 +1012,16 @@ lin_lwp_attach_lwp (ptid_t ptid, int ver
if (lp == NULL)
lp = add_lwp (ptid);
gdb-6.7.1-upstream.patch:
Index: gdb-6.7.1-upstream.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.7.1-upstream.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.7.1-upstream.patch 10 Dec 2007 23:05:54 -0000 1.3
+++ gdb-6.7.1-upstream.patch 7 Jan 2008 15:10:23 -0000 1.4
@@ -5344,3 +5344,53 @@
# Skip the NOTE header.
read $fi 16
set data [read $fi]
+
+http://sourceware.org/ml/gdb-patches/2007-12/msg00485.html
+http://sourceware.org/ml/gdb-cvs/2007-12/msg00166.html
+
+2007-12-31 Daniel Jacobowitz <dan at codesourcery.com>
+
+ * remote.c (unpack_nibble): Use fromhex.
+ * symtab.c (find_line_common): Always set exact_match.
+
+===================================================================
+RCS file: /cvs/src/src/gdb/remote.c,v
+retrieving revision 1.273
+retrieving revision 1.274
+diff -u -r1.273 -r1.274
+--- src/gdb/remote.c 2007/12/07 15:02:12 1.273
++++ src/gdb/remote.c 2007/12/31 18:38:43 1.274
+@@ -1353,7 +1353,7 @@
+ static char *
+ unpack_nibble (char *buf, int *val)
+ {
+- ishex (*buf++, val);
++ *val = fromhex (*buf++);
+ return buf;
+ }
+
+===================================================================
+RCS file: /cvs/src/src/gdb/symtab.c,v
+retrieving revision 1.168
+retrieving revision 1.169
+diff -u -r1.168 -r1.169
+--- src/gdb/symtab.c 2007/12/18 16:02:54 1.168
++++ src/gdb/symtab.c 2007/12/31 18:38:43 1.169
+@@ -2424,6 +2424,8 @@
+ int best_index = -1;
+ int best = 0;
+
++ *exact_match = 0;
++
+ if (lineno <= 0)
+ return -1;
+ if (l == 0)
+@@ -2449,8 +2451,6 @@
+ }
+
+ /* If we got here, we didn't get an exact match. */
+-
+- *exact_match = 0;
+ return best_index;
+ }
+
Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.261
retrieving revision 1.262
diff -u -r1.261 -r1.262
--- gdb.spec 10 Dec 2007 23:05:54 -0000 1.261
+++ gdb.spec 7 Jan 2008 15:10:23 -0000 1.262
@@ -11,7 +11,7 @@
Version: 6.7.1
# The release always contains a leading reserved number, start it at 1.
-Release: 6%{?dist}
+Release: 7%{?dist}
License: GPL
Group: Development/Debuggers
@@ -274,7 +274,7 @@
Patch246: gdb-6.6-bz237096-watchthreads-testcasefix.patch
# Notify user of a child forked process being detached (BZ 235197).
-Patch247: gdb-6.6-bz234468-fork-detach-info.patch
+Patch247: gdb-6.6-bz235197-fork-detach-info.patch
# New testcase for gcore of 32bit inferiors on 64bit hosts.
Patch249: gdb-6.6-gcore32-test.patch
@@ -315,7 +315,7 @@
Patch278: gdb-6.6-cu-ranges.patch
# Fix hardware watchpoints after inferior forks-off some process.
-Patch280: gdb-6.6-multifork-debugreg-for-i386-and-x86_64.patch
+Patch280: gdb-6.6-multifork-debugreg.patch
# Fix displaying of numeric char arrays as strings (BZ 224128).
Patch282: gdb-6.7-charsign-test.patch
@@ -329,6 +329,10 @@
# Testsuite fixes for more stable/comparable results.
Patch287: gdb-6.7-testsuite-stable-results.patch
+# Support DW_TAG_interface_type the same way as DW_TAG_class_type (BZ 426600).
+Patch293: gdb-6.7-bz426600-DW_TAG_interface_type-fix.patch
+Patch294: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
+
BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext
BuildRequires: flex bison sharutils expat-devel
Requires: readline
@@ -475,6 +479,8 @@
%patch283 -p1
%patch284 -p1
%patch287 -p1
+%patch293 -p1
+%patch294 -p1
# Change the version that gets printed at GDB startup, so it is RedHat
# specific.
@@ -633,6 +639,13 @@
# don't include the files in include, they are part of binutils
%changelog
+* Mon Jan 7 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.7.1-7
+- Backport the gcc-4.3 compatibility -Werror fixes.
+- Fix documentation on hardware watchpoints wrt multiple threads.
+- Rename the patch file for BZ 235197 from its former name 234468.
+- Fix the vendora testcase `attach-32.exp' affecting the other tests results.
+- Support DW_TAG_interface_type the same way as DW_TAG_class_type (BZ 426600).
+
* Mon Dec 10 2007 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.7.1-6
- Testsuite fixes for more stable/comparable results.
--- gdb-6.6-bz234468-fork-detach-info.patch DELETED ---
--- gdb-6.6-multifork-debugreg-for-i386-and-x86_64.patch DELETED ---
- Previous message (by thread): rpms/fbreader/devel .cvsignore, 1.4, 1.5 fbreader-desktop.patch, 1.1, 1.2 fbreader-optflags.patch, 1.3, 1.4 fbreader.spec, 1.7, 1.8 sources, 1.4, 1.5
- Next message (by thread): rpms/openbox/devel .cvsignore, 1.7, 1.8 openbox.spec, 1.29, 1.30 sources, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list