rpms/gdb/FC-4 gdb-6.3-catch-debug-registers-error-20060527.patch, NONE, 1.1 .cvsignore, 1.18, 1.19 gdb-6.3-augmS-20060303.patch, 1.2, 1.3 gdb-6.3-cfaval-20060303.patch, 1.3, 1.4 gdb-6.3-gstack-without-path-20060414.patch, 1.1, 1.2 gdb.spec, 1.178, 1.179 sources, 1.18, 1.19 gdb-6.3-sigchld-exception-20060331.patch, 1.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Sat May 27 07:34:42 UTC 2006
- Previous message (by thread): rpms/kernel/devel linux-2.6-debug-list_head.patch,1.2,1.3
- Next message (by thread): rpms/gdb/devel gdb-6.3-catch-debug-registers-error-20060527.patch, NONE, 1.1 .cvsignore, 1.18, 1.19 gdb-6.3-augmS-20060303.patch, 1.2, 1.3 gdb-6.3-cfaval-20060303.patch, 1.3, 1.4 gdb-6.3-gstack-without-path-20060414.patch, 1.1, 1.2 gdb.spec, 1.181, 1.182 sources, 1.18, 1.19 gdb-6.1post-readnever-nov2004.patch, 1.3, NONE gdb-6.3-sigchld-exception-20060331.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: aoliva
Update of /cvs/dist/rpms/gdb/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv24041/gdb-FC-4
Modified Files:
.cvsignore gdb-6.3-augmS-20060303.patch
gdb-6.3-cfaval-20060303.patch
gdb-6.3-gstack-without-path-20060414.patch gdb.spec sources
Added Files:
gdb-6.3-catch-debug-registers-error-20060527.patch
Removed Files:
gdb-6.3-sigchld-exception-20060331.patch
Log Message:
* Sat May 27 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.130
- Rewrite patch for BZ 175270, BZ 175083 so as to catch the exception
earlier.
- Remove too-fragile testcases from patches for CFA value and "S"
augmentation.
gdb-6.3-catch-debug-registers-error-20060527.patch:
i386-linux-nat.c | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 deletions(-)
--- NEW FILE gdb-6.3-catch-debug-registers-error-20060527.patch ---
for gdb-6.3/gdb/ChangeLog
from Alexandre Oliva <aoliva at redhat.com>
* i386-linux-nat.c (i386_debug_register_for_thread): New struct.
(i386_linux_set_dr_for_thread): Rename from...
(i386_linux_set_debug_regs_for_thread): ... this, and
add new function to catch exceptions in the old one.
Index: gdb-6.3/gdb/i386-linux-nat.c
===================================================================
--- gdb-6.3.orig/gdb/i386-linux-nat.c 2006-04-14 03:22:47.000000000 -0300
+++ gdb-6.3/gdb/i386-linux-nat.c 2006-05-27 03:48:47.000000000 -0300
@@ -694,14 +694,33 @@ struct i386_debug_register_state
unsigned long control;
};
-static void
-i386_linux_set_debug_regs_for_thread (ptid_t ptid,
- struct i386_debug_register_state *dbs)
+struct i386_debug_register_for_thread
+{
+ ptid_t ptid;
+ struct i386_debug_register_state *dbs;
+};
+
+static int
+i386_linux_set_dr_for_thread (void *drp)
{
+ ptid_t ptid = ((struct i386_debug_register_for_thread *)drp)->ptid;
+ struct i386_debug_register_state *dbs
+ = ((struct i386_debug_register_for_thread *)drp)->dbs;
int i;
for (i = 0; i < (DR_LASTADDR - DR_FIRSTADDR) + 1; ++i)
i386_linux_dr_set_addr (ptid, i, dbs->addr[i]);
i386_linux_dr_set_control (ptid, dbs->control);
+ return 1;
+}
+
+static int
+i386_linux_set_debug_regs_for_thread (ptid_t ptid,
+ struct i386_debug_register_state *dbs)
+{
+ struct i386_debug_register_for_thread dr;
+ dr.ptid = ptid;
+ dr.dbs = dbs;
+ return catch_errors (i386_linux_set_dr_for_thread, &dr, "", RETURN_MASK_ALL);
}
/* Iterator function to support syncing debug registers across all threads. */
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/.cvsignore,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- .cvsignore 3 Apr 2005 00:30:15 -0000 1.18
+++ .cvsignore 27 May 2006 07:34:30 -0000 1.19
@@ -1,3 +1 @@
-gdb+dejagnu-20040607.tar.bz2
gdb-6.3.tar.bz2
-gdb-6.3.50.20050401.tar.bz2
gdb-6.3-augmS-20060303.patch:
dwarf2-frame.c | 34 +++++++++++++++++++++++++++++++---
dwarf2-frame.h | 8 ++++++++
2 files changed, 39 insertions(+), 3 deletions(-)
Index: gdb-6.3-augmS-20060303.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb-6.3-augmS-20060303.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-augmS-20060303.patch 7 Mar 2006 05:13:17 -0000 1.2
+++ gdb-6.3-augmS-20060303.patch 27 May 2006 07:34:30 -0000 1.3
@@ -13,12 +13,6 @@
(dwarf2_frame_sniffer): Use dwarf2_frame_signal_frame_p.
* dwarf2-frame.h (dwarf2_frame_set_signal_frame_p): New prototype.
-for gdb/testsuite/ChangeLog
-2006-03-03 Alexandre Oliva <aoliva at redhat.com>
-
- * gdb.dwarf2/signal-augm.exp: New test.
- * gdb.dwarf2/signal-augm.c, gdb.dwarf2/signal-augm.S: Its sources.
-
Index: gdb-6.3/gdb/dwarf2-frame.c
===================================================================
--- gdb-6.3.orig/gdb/dwarf2-frame.c 2006-02-14 17:21:07.000000000 -0200
@@ -86,503 +80,6 @@
/* Otherwise we have an unknown augmentation.
Bail out unless we saw a 'z' prefix. */
else
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.S
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.S 2006-03-03 13:31:10.000000000 -0300
-@@ -0,0 +1,207 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+
-+ Written by Jakub Jelinek, as testcase for GCC PR 26208. */
-+
-+ .globl fn3
-+ .type fn3, @function
-+#ifdef __powerpc64__
-+ .section ".opd","aw"
-+ .align 3
-+fn3:
-+ .quad .L.fn3,.TOC. at tocbase,0
-+ .text
-+.L.fn3:
-+#else
-+ .text
-+ .p2align 4,,15
-+fn3:
-+#endif
-+ .cfi_startproc
-+#if defined __x86_64__
-+ movl $10, %eax
-+ movl $11, %ecx
-+1: pushq %rax
-+ .cfi_adjust_cfa_offset 8
-+ pushq %rcx
-+ .cfi_adjust_cfa_offset 8
-+ popq %rax
-+ .cfi_adjust_cfa_offset -8
-+ popq %rcx
-+ .cfi_adjust_cfa_offset -8
-+ pushq %rax
-+ .cfi_adjust_cfa_offset 8
-+ pushq %rcx
-+ .cfi_adjust_cfa_offset 8
-+ popq %rax
-+ .cfi_adjust_cfa_offset -8
-+ popq %rcx
-+ .cfi_adjust_cfa_offset -8
-+ pushq %rax
-+ .cfi_adjust_cfa_offset 8
-+ pushq %rcx
-+ .cfi_adjust_cfa_offset 8
-+ popq %rax
-+ .cfi_adjust_cfa_offset -8
-+ popq %rcx
-+ .cfi_adjust_cfa_offset -8
-+ pushq %rax
-+ .cfi_adjust_cfa_offset 8
-+ pushq %rcx
-+ .cfi_adjust_cfa_offset 8
-+ popq %rax
-+ .cfi_adjust_cfa_offset -8
-+ popq %rcx
-+ .cfi_adjust_cfa_offset -8
-+ jmp 1b
-+#elif defined __i386__
-+ movl $10, %eax
-+ movl $11, %ecx
-+1: pushl %eax
-+ .cfi_adjust_cfa_offset 4
-+ pushl %ecx
-+ .cfi_adjust_cfa_offset 4
-+ popl %eax
-+ .cfi_adjust_cfa_offset -4
-+ popl %ecx
-+ .cfi_adjust_cfa_offset -4
-+ pushl %eax
-+ .cfi_adjust_cfa_offset 4
-+ pushl %ecx
-+ .cfi_adjust_cfa_offset 4
-+ popl %eax
-+ .cfi_adjust_cfa_offset -4
-+ popl %ecx
-+ .cfi_adjust_cfa_offset -4
-+ pushl %eax
-+ .cfi_adjust_cfa_offset 4
-+ pushl %ecx
-+ .cfi_adjust_cfa_offset 4
-+ popl %eax
-+ .cfi_adjust_cfa_offset -4
-+ popl %ecx
-+ .cfi_adjust_cfa_offset -4
-+ pushl %eax
-+ .cfi_adjust_cfa_offset 4
-+ pushl %ecx
-+ .cfi_adjust_cfa_offset 4
-+ popl %eax
-+ .cfi_adjust_cfa_offset -4
-+ popl %ecx
-+ .cfi_adjust_cfa_offset -4
-+ jmp 1b
-+#elif defined __powerpc64__
-+ mflr 0
-+ mr 9,1
-+ std 0,16(1)
-+ .cfi_offset lr, 8
-+ bl 1f
-+1: stdu 1,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ stdu 9,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ stdu 1,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ stdu 9,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ b 1b
-+#elif defined __powerpc__
-+ mflr 0
-+ mr 9,1
-+ stwu 1,-16(1)
-+ .cfi_adjust_cfa_offset 16
-+ stw 0,20(1)
-+ .cfi_offset lr, 4
-+ bl 1f
-+1: stwu 9,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ stwu 9,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ stwu 9,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ stwu 9,-64(1)
-+ .cfi_adjust_cfa_offset 64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ addi 1,1,64
-+ .cfi_adjust_cfa_offset -64
-+ b 1b
-+#elif defined __s390x__
-+ stmg %r14,%r15,112(%r15)
-+ .cfi_offset %r14, -48
-+ .cfi_offset %r15, -40
-+ lghi %r14,6
-+1: aghi %r15,-160
-+ .cfi_adjust_cfa_offset 160
-+ aghi %r15,-160
-+ .cfi_adjust_cfa_offset 160
-+ aghi %r15,160
-+ .cfi_adjust_cfa_offset -160
-+ aghi %r15,160
-+ .cfi_adjust_cfa_offset -160
-+ aghi %r15,-160
-+ .cfi_adjust_cfa_offset 160
-+ aghi %r15,-160
-+ .cfi_adjust_cfa_offset 160
-+ aghi %r15,160
-+ .cfi_adjust_cfa_offset -160
-+ aghi %r15,160
-+ .cfi_adjust_cfa_offset -160
-+ j 1b
-+#elif defined __s390__
-+ stm %r14,%r15,56(%r15)
-+ .cfi_offset %r14, -40
-+ .cfi_offset %r15, -36
-+ lgi %r14,6
-+1: ahi %r15,-96
-+ .cfi_adjust_cfa_offset 96
-+ ahi %r15,-96
-+ .cfi_adjust_cfa_offset 96
-+ ahi %r15,96
-+ .cfi_adjust_cfa_offset -96
-+ ahi %r15,96
-+ .cfi_adjust_cfa_offset -96
-+ ahi %r15,-96
-+ .cfi_adjust_cfa_offset 96
-+ ahi %r15,-96
-+ .cfi_adjust_cfa_offset 96
-+ ahi %r15,96
-+ .cfi_adjust_cfa_offset -96
-+ ahi %r15,96
-+ .cfi_adjust_cfa_offset -96
-+ j 1b
-+#endif
-+ .cfi_endproc
-+#ifdef __powerpc64__
-+ .size fn3, . - .L.fn3
-+#else
-+ .size fn3, .-fn3
-+#endif
-+ .section .note.GNU-stack,"", at progbits
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.c 2006-03-03 13:31:10.000000000 -0300
-@@ -0,0 +1,198 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+
-+ Written by Jakub Jelinek, as testcase for GCC PR 26208. GDB does
-+ not need all of it, since all we do is to try to recognize signal
-+ stack frames. If the compiler does not support the S augmentation
-+ used to denote stack frames, and GDB does not otherwise recognize
-+ stack frames, the test fails. */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <signal.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <pthread.h>
-+#include <unistd.h>
-+#include <sys/wait.h>
-+#include <sys/syscall.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+ _Unwind_Exception_Class exc_class,
-+ struct _Unwind_Exception *exc_obj,
-+ struct _Unwind_Context *context,
-+ void *stop_parameter)
-+{
-+ if (actions & _UA_END_OF_STACK)
-+ abort ();
-+ return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+ struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+ memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+ exc->exception_cleanup = 0;
-+
-+#ifndef __USING_SJLJ_EXCEPTIONS__
-+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+#else
-+ _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
-+#endif
-+
-+ abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+ ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+ if (count != 2)
-+ abort ();
-+ _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+ char dummy __attribute__((cleanup (counter)));
-+ force_unwind ();
-+ return 0;
-+}
-+
-+static void
-+fn4 (int sig, siginfo_t *info, void *ctx)
-+{
-+ char dummy __attribute__((cleanup (counter)));
-+ fn5 ();
-+}
-+
-+extern void fn3 (long a, long b, long c, long d, long e, long f, long g);
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+ fn3 (1, 2, 3, 4, 5, 6, 7);
-+ return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+#if defined __i386__ && defined SIGACTION_DIRECT_SYSCALL
-+ struct i386_kernel_sigaction
-+ {
-+ void (*k_sa_handler) (int, siginfo_t *, void *);
-+ unsigned long k_sa_flags;
-+ void (*sa_restorer) (void);
-+ unsigned long long k_sa_mask;
-+ } s;
-+ extern void __cleanup12_rt_sigreturn (void);
-+ s.k_sa_handler = fn4;
-+ s.k_sa_mask = 0;
-+ s.k_sa_flags = 0x4000000 | SA_RESETHAND | SA_SIGINFO;
-+ s.sa_restorer = __cleanup12_rt_sigreturn;
-+ asm volatile (".subsection 1; nop; __cleanup12_rt_sigreturn:"
-+ "movl %0, %%eax; int $0x80; .previous"
-+ : : "i" (__NR_rt_sigreturn));
-+ syscall (SYS_rt_sigaction, SIGUSR1, &s, NULL, 8);
-+#else
-+ struct sigaction s;
-+ sigemptyset (&s.sa_mask);
-+ s.sa_sigaction = fn4;
-+ s.sa_flags = SA_RESETHAND | SA_SIGINFO;
-+ sigaction (SIGUSR1, &s, NULL);
-+#endif
-+ fn2 ();
-+ return 0;
-+}
-+
-+static void *
-+tf (void *arg)
-+{
-+ char dummy __attribute__((cleanup (handler)));
-+ (void) arg;
-+ fn1 ();
-+ return 0;
-+}
-+
-+void
-+do_test (void)
-+{
-+ pthread_t th;
-+ struct timespec ts;
-+ if (pthread_create (&th, 0, tf, 0))
-+ {
-+ fputs ("pthread_create failed\n", stderr);
-+ _exit (1);
-+ }
-+ ts.tv_sec = 1;
-+ ts.tv_nsec = 0;
-+ nanosleep (&ts, NULL);
-+ if (pthread_kill (th, SIGUSR1))
-+ {
-+ fputs ("pthread_kill failed\n", stderr);
-+ _exit (1);
-+ }
-+ ts.tv_sec = 3;
-+ ts.tv_nsec = 0;
-+ nanosleep (&ts, NULL);
-+ _exit (1);
-+}
-+
-+int
-+main (int argc, char **argv)
-+{
-+ int i, failures = 0, status;
-+ if (argc == 2 && strcmp (argv[1], "-d") == 0)
-+ do_test ();
-+ else
-+ for (i = 0; i < 50; i++)
-+ {
-+ pid_t pid = fork ();
-+ if (pid < 0)
-+ {
-+ perror ("fork");
-+ failures++;
-+ }
-+ else if (pid == 0)
-+ do_test ();
-+ else if (waitpid (pid, &status, 0) < 0)
-+ {
-+ perror ("waitpid");
-+ failures++;
-+ }
-+ else if (! WIFEXITED (status) || WEXITSTATUS (status))
-+ {
-+ fprintf (stderr, "Failure in round %d\n", i);
-+ failures++;
-+ }
-+ }
-+ if (failures)
-+ abort ();
-+ return 0;
-+}
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.exp 2006-03-03 13:31:10.000000000 -0300
-@@ -0,0 +1,77 @@
-+# Copyright 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+
-+# Please email any bugs, comments, and/or additions to this file to:
-+# bug-gdb at gnu.org
-+
-+# This file was written by Alexandre Oliva <aoliva at redhat.com>
-+
-+if $tracelevel then {
-+ strace $tracelevel
-+ }
-+
-+set prms_id 0
-+set bug_id 0
-+
-+# signal-augm.S needs hand-coded assembly
-+if {![istarget i*86-*-linux*]
-+ && ![istarget x86_64-*-linux*]
-+ && ![istarget powerpc*-*-linux*]
-+ && ![istarget s390*-*-linux*]} {
-+ return -1;
-+}
-+
-+if [get_compiler_info "ignored"] {
-+ return -1
-+}
-+
-+if {$gcc_compiled == 0} {
-+ return -1
-+}
-+
-+set testfile "signal-augm"
-+
-+set srcbasename ${srcdir}/${subdir}/${testfile}
-+set binfile ${objdir}/${subdir}/${testfile}
-+if { [gdb_compile "${srcbasename}.c ${srcbasename}.S" "${binfile}" executable [list debug "additional_flags=-pthread -fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2"]] != ""} {
-+ return -1;
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
-+if [target_info exists gdb_stub] {
-+ gdb_step_for_stub;
-+}
-+
-+gdb_test "break fn5" "Breakpoint.*at.*" "breakpoint fn5"
-+
-+set test "stop at fn5"
-+gdb_test_multiple "run -d" "$test" {
-+ -re "received signal" {
-+ send_gdb "continue\n"
-+ }
-+ -re "Breakpoint 1" {
-+ pass "$test"
-+ }
-+}
-+
-+gdb_test "backtrace" ".*\#0 .* fn5 .*\#1 .* fn4 .*\#2 .*signal handler.*\#3 .* fn3 .*\#4 .* fn2 .*\#5 .* fn1 .*\#6 .* tf.*" "$test"
-+
-+return 0
-+
Index: gdb-6.3/gdb/dwarf2-frame.h
===================================================================
--- gdb-6.3.orig/gdb/dwarf2-frame.h 2006-02-14 17:21:06.000000000 -0200
gdb-6.3-cfaval-20060303.patch:
gdb/dwarf2-frame.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++
gdb/dwarf2-frame.h | 4 ++
gdb/valarith.c | 9 ++++-
include/elf/dwarf2.h | 68 +++++++++++++++++++++++++++++++++++++--
4 files changed, 164 insertions(+), 5 deletions(-)
Index: gdb-6.3-cfaval-20060303.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb-6.3-cfaval-20060303.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-cfaval-20060303.patch 8 Mar 2006 23:48:02 -0000 1.3
+++ gdb-6.3-cfaval-20060303.patch 27 May 2006 07:34:30 -0000 1.4
@@ -45,13 +45,6 @@
* valarith.c (value_binop): Fix result type for the shift
operators.
-for gdb/testsuite/ChangeLog
-2006-03-07 Alexandre Oliva <aoliva at redhat.com>
-
- * gdb.dwarf2/cfa-val-expr.exp: New test.
- * gdb.dwarf2/cfa-val-expr-1.c, gdb.dwarf2/cfa-val-expr-2.c:
- Its sources.
-
Index: gdb-6.3/gdb/dwarf2-frame.c
===================================================================
--- gdb-6.3.orig/gdb/dwarf2-frame.c 2006-03-07 01:45:13.000000000 -0300
@@ -194,599 +187,6 @@
/* These aren't defined by the DWARF2 CFI specification, but are
used internally by GDB. These should be superseeded by
REG_INDIRECT. */
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-1.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-1.c 2006-03-07 01:45:13.000000000 -0300
-@@ -0,0 +1,261 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+
-+ Written by Jakub Jelinek, as testcase for Dwarf3 value expression
-+ support in GCC unwinders. GDB does not need all of it, since all
-+ we do is to try to get correct backtraces. No compiler or binutils
-+ support is required. */
-+
-+/* Test complex CFA value expressions. */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+ _Unwind_Exception_Class exc_class,
-+ struct _Unwind_Exception *exc_obj,
-+ struct _Unwind_Context *context,
-+ void *stop_parameter)
-+{
-+ if (actions & _UA_END_OF_STACK)
-+ abort ();
-+ return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+ struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+ memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+ exc->exception_cleanup = 0;
-+
-+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+ abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+ ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+ if (count != 2)
-+ abort ();
-+ _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+ char dummy __attribute__((cleanup (counter)));
-+ force_unwind ();
-+ return 0;
-+}
-+
-+void
-+bar (void)
-+{
-+ char dummy __attribute__((cleanup (counter)));
-+ fn5 ();
-+}
-+
-+void __attribute__((noinline))
-+foo (int x)
-+{
-+ char buf[256];
-+#ifdef __i386__
-+ __asm (
-+ "testl %0, %0\n\t"
-+ "jnz 1f\n\t"
-+ ".subsection 1\n\t"
-+ ".type _L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t" "leal %1, %%ecx\n"
-+"2:\t" "call bar\n"
-+"3:\t" "jmp 18f\n"
-+"4:\t" ".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+ ".previous\n\t"
-+ ".section .eh_frame,\"a\", at progbits\n"
-+"5:\t" ".long 7f-6f # Length of Common Information Entry\n"
-+"6:\t" ".long 0x0 # CIE Identifier Tag\n\t"
-+ ".byte 0x1 # CIE Version\n\t"
-+ ".ascii \"zR\\0\" # CIE Augmentation\n\t"
-+ ".uleb128 0x1 # CIE Code Alignment Factor\n\t"
-+ ".sleb128 -4 # CIE Data Alignment Factor\n\t"
-+ ".byte 0x8 # CIE RA Column\n\t"
-+ ".uleb128 0x1 # Augmentation size\n\t"
-+ ".byte 0x1b # FDE Encoding (pcrel sdata4)\n\t"
-+ ".byte 0xc # DW_CFA_def_cfa\n\t"
-+ ".uleb128 0x4\n\t"
-+ ".uleb128 0x0\n\t"
-+ ".align 4\n"
-+"7:\t" ".long 17f-8f # FDE Length\n"
-+"8:\t" ".long 8b-5b # FDE CIE offset\n\t"
-+ ".long 1b-. # FDE initial location\n\t"
-+ ".long 4b-1b # FDE address range\n\t"
-+ ".uleb128 0x0 # Augmentation size\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x8\n\t"
-+ ".uleb128 10f-9f\n"
-+"9:\t" ".byte 0x78 # DW_OP_breg8\n\t"
-+ ".sleb128 3b-1b\n"
-+"10:\t" ".byte 0x40 + (2b-1b) # DW_CFA_advance_loc\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x8\n\t"
-+ ".uleb128 12f-11f\n"
-+"11:\t" ".byte 0x78 # DW_OP_breg8\n\t"
-+ ".sleb128 3b-2b\n"
-+"12:\t" ".byte 0x40 + (3b-2b-1) # DW_CFA_advance_loc\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x8\n\t"
-+ ".uleb128 16f-13f\n"
-+"13:\t" ".byte 0x78 # DW_OP_breg8\n\t"
-+ ".sleb128 15f-14f\n\t"
-+ ".byte 0x0d # DW_OP_const4s\n"
-+"14:\t" ".4byte 3b-.\n\t"
-+ ".byte 0x1c # DW_OP_minus\n\t"
-+ ".byte 0x0d # DW_OP_const4s\n"
-+"15:\t" ".4byte 18f-.\n\t"
-+ ".byte 0x22 # DW_OP_plus\n"
-+"16:\t" ".align 4\n"
-+"17:\t" ".previous\n"
-+"18:"
-+ : : "r" (x), "m" (x), "r" (buf)
-+ : "memory", "eax", "edx", "ecx");
-+#elif defined __x86_64__
-+ __asm (
-+ "testl %0, %0\n\t"
-+ "jnz 1f\n\t"
-+ ".subsection 1\n\t"
-+ ".type _L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t" "leaq %1, %%rdi\n"
-+"2:\t" "subq $128, %%rsp\n"
-+"3:\t" "call bar\n"
-+"4:\t" "addq $128, %%rsp\n"
-+"5:\t" "jmp 24f\n"
-+"6:\t" ".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+ ".previous\n\t"
-+ ".section .eh_frame,\"a\", at progbits\n"
-+"7:\t" ".long 9f-8f # Length of Common Information Entry\n"
-+"8:\t" ".long 0x0 # CIE Identifier Tag\n\t"
-+ ".byte 0x1 # CIE Version\n\t"
-+ ".ascii \"zR\\0\" # CIE Augmentation\n\t"
-+ ".uleb128 0x1 # CIE Code Alignment Factor\n\t"
-+ ".sleb128 -8 # CIE Data Alignment Factor\n\t"
-+ ".byte 0x10 # CIE RA Column\n\t"
-+ ".uleb128 0x1 # Augmentation size\n\t"
-+ ".byte 0x1b # FDE Encoding (pcrel sdata4)\n\t"
-+ ".byte 0x12 # DW_CFA_def_cfa_sf\n\t"
-+ ".uleb128 0x7\n\t"
-+ ".sleb128 16\n\t"
-+ ".align 8\n"
-+"9:\t" ".long 23f-10f # FDE Length\n"
-+"10:\t" ".long 10b-7b # FDE CIE offset\n\t"
-+ ".long 1b-. # FDE initial location\n\t"
-+ ".long 6b-1b # FDE address range\n\t"
-+ ".uleb128 0x0 # Augmentation size\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x10\n\t"
-+ ".uleb128 12f-11f\n"
-+"11:\t" ".byte 0x80 # DW_OP_breg16\n\t"
-+ ".sleb128 4b-1b\n"
-+"12:\t" ".byte 0x40 + (2b-1b) # DW_CFA_advance_loc\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x10\n\t"
-+ ".uleb128 14f-13f\n"
-+"13:\t" ".byte 0x80 # DW_OP_breg16\n\t"
-+ ".sleb128 4b-2b\n"
-+"14:\t" ".byte 0x40 + (3b-2b) # DW_CFA_advance_loc\n\t"
-+ ".byte 0x0e # DW_CFA_def_cfa_offset\n\t"
-+ ".uleb128 0\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x10\n\t"
-+ ".uleb128 16f-15f\n"
-+"15:\t" ".byte 0x80 # DW_OP_breg16\n\t"
-+ ".sleb128 4b-3b\n"
-+"16:\t" ".byte 0x40 + (4b-3b-1) # DW_CFA_advance_loc\n\t"
-+ ".byte 0x0e # DW_CFA_def_cfa_offset\n\t"
-+ ".uleb128 128\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x10\n\t"
-+ ".uleb128 20f-17f\n"
-+"17:\t" ".byte 0x80 # DW_OP_breg16\n\t"
-+ ".sleb128 19f-18f\n\t"
-+ ".byte 0x0d # DW_OP_const4s\n"
-+"18:\t" ".4byte 4b-.\n\t"
-+ ".byte 0x1c # DW_OP_minus\n\t"
-+ ".byte 0x0d # DW_OP_const4s\n"
-+"19:\t" ".4byte 24f-.\n\t"
-+ ".byte 0x22 # DW_OP_plus\n"
-+"20:\t" ".byte 0x40 + (5b-4b+1) # DW_CFA_advance_loc\n\t"
-+ ".byte 0x13 # DW_CFA_def_cfa_offset_sf\n\t"
-+ ".sleb128 16\n\t"
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x10\n\t"
-+ ".uleb128 22f-21f\n"
-+"21:\t" ".byte 0x80 # DW_OP_breg16\n\t"
-+ ".sleb128 4b-5b\n"
-+"22:\t" ".align 8\n"
-+"23:\t" ".previous\n"
-+"24:"
-+ : : "r" (x), "m" (x), "r" (buf)
-+ : "memory", "rax", "rdx", "rcx", "rsi", "rdi",
-+ "r8", "r9", "r10", "r11");
-+#else
-+# error Unsupported test architecture
-+#endif
-+}
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+ foo (3);
-+ return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+ fn2 ();
-+ return 0;
-+}
-+
-+static void *
-+fn0 (void)
-+{
-+ char dummy __attribute__((cleanup (handler)));
-+ fn1 ();
-+ return 0;
-+}
-+
-+int
-+main (void)
-+{
-+ fn0 ();
-+ return 0;
-+}
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-2.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-2.c 2006-03-07 01:45:13.000000000 -0300
-@@ -0,0 +1,226 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+ Copyright 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+
-+ Written by Jakub Jelinek, as testcase for Dwarf3 value expression
-+ support in GCC unwinders. GDB does not need all of it, since all
-+ we do is to try to get correct backtraces. No compiler or binutils
-+ support is required. */
-+
-+/* Test complex CFA value expressions. */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+ _Unwind_Exception_Class exc_class,
-+ struct _Unwind_Exception *exc_obj,
-+ struct _Unwind_Context *context,
-+ void *stop_parameter)
-+{
-+ if (actions & _UA_END_OF_STACK)
-+ abort ();
-+ return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+ struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+ memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+ exc->exception_cleanup = 0;
-+
-+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+ abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+ ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+ if (count != 2)
-+ abort ();
-+ _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+ char dummy __attribute__((cleanup (counter)));
-+ force_unwind ();
-+ return 0;
-+}
-+
-+void
-+bar (void)
-+{
-+ char dummy __attribute__((cleanup (counter)));
-+ fn5 ();
-+}
-+
-+void __attribute__((noinline))
-+foo (int x)
-+{
-+ char buf[256];
-+#ifdef __x86_64__
-+ __asm (
-+ "testl %0, %0\n\t"
-+ "jnz 1f\n\t"
-+ ".subsection 1\n\t"
-+ ".type _L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t" "leaq %1, %%rdi\n"
-+"2:\t" "subq $128, %%rsp\n"
-+"3:\t" "call bar\n"
-+"4:\t" "addq $128, %%rsp\n"
-+"5:\t" "jmp 21f\n"
-+"6:\t" ".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+ ".previous\n\t"
-+ ".section .eh_frame,\"a\", at progbits\n"
-+"7:\t" ".long 9f-8f # Length of Common Information Entry\n"
-+"8:\t" ".long 0x0 # CIE Identifier Tag\n\t"
-+ ".byte 0x1 # CIE Version\n\t"
-+ ".ascii \"zR\\0\" # CIE Augmentation\n\t"
-+ ".uleb128 0x1 # CIE Code Alignment Factor\n\t"
-+ ".sleb128 -8 # CIE Data Alignment Factor\n\t"
-+ ".byte 0x10 # CIE RA Column\n\t"
-+ ".uleb128 0x1 # Augmentation size\n\t"
-+ ".byte 0x1b # FDE Encoding (pcrel sdata4)\n\t"
-+ ".byte 0xc # DW_CFA_def_cfa\n\t"
-+ ".uleb128 0x7\n\t"
-+ ".uleb128 0x0\n\t"
-+ ".align 8\n"
-+"9:\t" ".long 20f-10f # FDE Length\n"
-+"10:\t" ".long 10b-7b # FDE CIE offset\n\t"
-+ ".long 1b-. # FDE initial location\n\t"
-+ ".long 6b-1b # FDE address range\n\t"
-+ ".uleb128 0x0 # Augmentation size\n\t"
-+ /* This CFA expression computes the address right
-+ past the jnz instruction above, from %rip somewhere
-+ within the _L_mutex_lock_%= subsection. */
-+ ".byte 0x16 # DW_CFA_val_expression\n\t"
-+ ".uleb128 0x10\n\t"
-+ ".uleb128 19f-11f\n"
-+"11:\t" ".byte 0x80 # DW_OP_breg16\n\t"
-+ ".sleb128 0\n"
-+"12:\t" ".byte 0x12 # DW_OP_dup\n\t"
-+ ".byte 0x94 # DW_OP_deref_size\n\t"
-+ ".byte 1\n\t"
-+ ".byte 0x12 # DW_OP_dup\n\t"
-+ ".byte 0x08 # DW_OP_const1u\n\t"
-+ ".byte 0x48\n\t"
-+ ".byte 0x2e # DW_OP_ne\n\t"
-+ ".byte 0x28 # DW_OP_bra\n\t"
-+ ".2byte 16f-13f\n"
-+"13:\t" ".byte 0x13 # DW_OP_drop\n\t"
-+ ".byte 0x23 # DW_OP_plus_uconst\n\t"
-+ ".uleb128 1\n\t"
-+ ".byte 0x12 # DW_OP_dup\n\t"
-+ ".byte 0x94 # DW_OP_deref_size\n\t"
-+ ".byte 1\n\t"
-+ ".byte 0x08 # DW_OP_const1u\n\t"
-+ ".byte 0x81\n\t"
-+ ".byte 0x2e # DW_OP_ne\n\t"
-+ ".byte 0x28 # DW_OP_bra\n\t"
-+ ".2byte 15f-14f\n"
-+"14:\t" ".byte 0x23 # DW_OP_plus_uconst\n\t"
-+ ".uleb128 3b-2b-1\n\t"
-+ ".byte 0x2f # DW_OP_skip\n\t"
-+ ".2byte 12b-15f\n"
-+"15:\t" ".byte 0x23 # DW_OP_plus_uconst\n\t"
-+ ".uleb128 2b-1b-1\n\t"
-+ ".byte 0x2f # DW_OP_skip\n\t"
-+ ".2byte 12b-16f\n"
-+"16:\t" ".byte 0x08 # DW_OP_const1u\n\t"
-+ ".byte 0xe8\n\t"
-+ ".byte 0x2e # DW_OP_ne\n\t"
-+ ".byte 0x28 # DW_OP_bra\n\t"
-+ ".2byte 18f-17f\n"
-+"17:\t" ".byte 0x23 # DW_OP_plus_uconst\n\t"
-+ ".uleb128 4b-3b\n\t"
-+ ".byte 0x2f # DW_OP_skip\n\t"
-+ ".2byte 12b-18f\n"
-+"18:\t" ".byte 0x23 # DW_OP_plus_uconst\n\t"
-+ ".uleb128 1\n\t"
-+ ".byte 0x12 # DW_OP_dup\n\t"
-+ ".byte 0x94 # DW_OP_deref_size\n\t"
-+ ".byte 4\n\t"
-+ ".byte 0x08 # DW_OP_const1u\n\t"
-+ ".byte 72 - (6b-5b) * 8 # (6b-5b) == 5 ? 32 : 56\n\t"
-+ ".byte 0x24 # DW_OP_shl\n\t"
-+ ".byte 0x08 # DW_OP_const1u\n\t"
-+ ".byte 72 - (6b-5b) * 8 # (6b-5b) == 5 ? 32 : 56\n\t"
-+ ".byte 0x26 # DW_OP_shra\n\t"
-+ ".byte 0x22 # DW_OP_plus\n\t"
-+ ".byte 0x23 # DW_OP_plus_uconst\n\t"
-+ ".uleb128 6b-5b-1\n"
-+"19:\t" ".byte 0x40 + (3b-1b) # DW_CFA_advance_loc\n\t"
-+ ".byte 0xe # DW_CFA_def_cfa_offset\n\t"
-+ ".uleb128 128\n\t"
-+ ".byte 0x40 + (5b-3b) # DW_CFA_advance_loc\n\t"
-+ ".byte 0xe # DW_CFA_def_cfa_offset\n\t"
-+ ".uleb128 0\n\t"
-+ ".align 8\n"
-+"20:\t" ".previous\n"
-+"21:"
-+ : : "r" (x), "m" (x), "r" (buf)
-+ : "memory", "rax", "rdx", "rcx", "rsi", "rdi",
-+ "r8", "r9", "r10", "r11");
-+#else
-+# error Unsupported test architecture
-+#endif
-+}
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+ foo (3);
-+ return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+ fn2 ();
-+ return 0;
-+}
-+
-+static void *
-+fn0 (void)
-+{
-+ char dummy __attribute__((cleanup (handler)));
-+ fn1 ();
-+ return 0;
-+}
-+
-+int
-+main (void)
-+{
-+ fn0 ();
-+ return 0;
-+}
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr.exp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr.exp 2006-03-07 01:45:13.000000000 -0300
-@@ -0,0 +1,91 @@
-+# Copyright 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+
-+# Please email any bugs, comments, and/or additions to this file to:
-+# bug-gdb at gnu.org
-+
-+# This file was written by Alexandre Oliva <aoliva at redhat.com>
-+
-+if $tracelevel then {
-+ strace $tracelevel
-+ }
-+
-+set prms_id 0
-+set bug_id 0
-+
-+# signal-augm.S needs hand-coded assembly
-+if {![istarget i*86-*-linux*]
-+ && ![istarget x86_64-*-linux*]} {
-+ return -1;
-+}
-+
-+if [get_compiler_info "ignored"] {
-+ return -1
-+}
-+
-+if {$gcc_compiled == 0} {
-+ return -1
-+}
-+
-+set tnum 1
-+set testfile "cfa-val-expr-$tnum"
-+
-+set srcfile ${srcdir}/${subdir}/${testfile}.c
-+set binfile ${objdir}/${subdir}/${testfile}
-+if { [gdb_compile "${srcfile}" "${binfile}" executable [list debug "additional_flags=-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2"]] != ""} {
-+ return -1;
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
-+if [target_info exists gdb_stub] {
-+ gdb_step_for_stub;
-+}
-+
-+gdb_test "break fn5" "Breakpoint.*at.*" "breakpoint fn5 ($tnum)"
-+gdb_test "run" ".*Breakpoint 1.*" "stopped at fn5 ($tnum)"
-+gdb_test "backtrace" ".*\#0 .* fn5 .*\#1 .* bar .*\#2 .* _L_mutex.* .*\#3 .* foo .*\#4 .* fn2 .*\#5 .* fn1 .*\#6 .* main.*" "backtrace ($tnum)"
-+
-+if {![istarget x86_64-*-linux*]} {
-+ return 0;
-+}
-+
-+set tnum 2
-+set testfile "cfa-val-expr-$tnum"
-+
-+set srcfile ${srcdir}/${subdir}/${testfile}.c
-+set binfile ${objdir}/${subdir}/${testfile}
-+if { [gdb_compile "${srcfile}" "${binfile}" executable [list debug "additional_flags=-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2"]] != ""} {
-+ return -1;
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
-+if [target_info exists gdb_stub] {
-+ gdb_step_for_stub;
-+}
-+
-+gdb_test "break fn5" "Breakpoint.*at.*" "breakpoint fn5 ($tnum)"
-+gdb_test "run" ".*Breakpoint 1.*" "stopped at fn5 ($tnum)"
-+gdb_test "backtrace" ".*\#0 .* fn5 .*\#1 .* bar .*\#2 .* _L_mutex.* .*\#3 .* foo .*\#4 .* fn2 .*\#5 .* fn1 .*\#6 .* main.*" "backtrace ($tnum)"
-+
-+return 0
Index: gdb-6.3/include/elf/dwarf2.h
===================================================================
--- gdb-6.3.orig/include/elf/dwarf2.h 2006-03-07 01:45:08.000000000 -0300
gdb-6.3-gstack-without-path-20060414.patch:
gstack.sh | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
Index: gdb-6.3-gstack-without-path-20060414.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb-6.3-gstack-without-path-20060414.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.3-gstack-without-path-20060414.patch 14 Apr 2006 07:05:50 -0000 1.1
+++ gdb-6.3-gstack-without-path-20060414.patch 27 May 2006 07:34:30 -0000 1.2
@@ -1,7 +1,8 @@
Index: gdb-6.3/gdb/gstack.sh
---- gdb-6.3/gdb/gstack.sh 2006-01-16 16:41:13.000000000 +0000
-+++ gdb-6.3/gdb/gstack.sh 2006-02-02 09:22:12.000000000 +0000
-@@ -17,17 +17,17 @@
+===================================================================
+--- gdb-6.3.orig/gdb/gstack.sh 2006-02-14 17:21:05.000000000 -0200
++++ gdb-6.3/gdb/gstack.sh 2006-04-14 03:17:12.000000000 -0300
+@@ -17,17 +17,17 @@ fi
backtrace="bt"
if test -d /proc/$1/task ; then
# Newer kernel; has a task/ directory.
@@ -22,7 +23,7 @@
if $GDB -nx --quiet --batch --readnever > /dev/null 2>&1; then
readnever=--readnever
-@@ -39,7 +39,7 @@
+@@ -39,7 +39,7 @@ fi
$GDB --quiet $readnever -nx /proc/$1/exe $1 <<EOF 2>&1 |
$backtrace
EOF
Index: gdb.spec
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb.spec,v
retrieving revision 1.178
retrieving revision 1.179
diff -u -r1.178 -r1.179
--- gdb.spec 17 May 2006 13:59:46 -0000 1.178
+++ gdb.spec 27 May 2006 07:34:30 -0000 1.179
@@ -11,7 +11,7 @@
Version: 6.3.0.0
# The release always contains a leading reserved number, start it at 0.
-Release: 1.129.FC4
+Release: 1.130.FC4
License: GPL
Group: Development/Debuggers
@@ -281,8 +281,8 @@
# Use bigger numbers than int.
Patch176: gdb-6.3-large-core-20051206.patch
-# Do not let exceptions in GDB break SIGCHLD blocking.
-Patch177: gdb-6.3-sigchld-exception-20060331.patch
+# Do not let errors related with debug registers break thread debugging.
+Patch177: gdb-6.3-catch-debug-registers-error-20060527.patch
# Hard-code executable names in gstack, such that it can run with a
# corrupted or missing PATH.
@@ -566,13 +566,19 @@
# don't include the files in include, they are part of binutils
%changelog
+* Sat May 27 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.130
+- Rewrite patch for BZ 175270, BZ 175083 so as to catch the exception
+earlier.
+- Remove too-fragile testcases from patches for CFA value and "S"
+augmentation.
+
* Wed May 17 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.129
- Add not-automatically-generated file to fopen64 patch (BZ 191948).
* Fri Apr 14 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.128
- Avoid race conditions caused by exceptions messing with signal masks.
(BZ 175270, BZ 175083, maybe BZ 172938).
-- Hardcode /bin and /usr/bin paths into gstack (BZ 179829).
+- Hardcode /bin and /usr/bin paths into gstack (BZ 179829, BZ 190548).
- Build in a subdir of the source tree instead of in a sibling directory.
- Switch to versioning scheme that uses the same base revision number
for all OSes, and uses a suffix to tell the builds apart and ensure
@@ -582,15 +588,16 @@
- Bump up release number.
* Thu Apr 13 2006 Stepan Kasal <skasal at redhat.com> - 6.3.0.0-1.123
-- Use fopen64 where available. Fixes BZ 178796.
-- Use bigger numbers than int. Fixes BZ 171783.
+- Use fopen64 where available. Fixes BZ 178796, BZ 190547.
+- Use bigger numbers than int. Fixes BZ 171783, BZ 179096.
* Wed Mar 8 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.122
- Bump up release number.
* Wed Mar 8 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.119
-- Fix regression in PIE debugging (BZ 133944) (re?)introduced by
-the prelink fix (BZ 175075). Improve testcase for the prelink fix.
+- Fix regression in PIE debugging (BZ 133944) (re?)introduced by the
+prelink fix (BZ 175075, BZ 190545). Improve testcase for the prelink
+fix.
- Revert dwarf2 frame identifier change.
* Tue Mar 7 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.118
@@ -617,7 +624,7 @@
* Thu Feb 23 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.107
- Enable gdb to debug core files and executables with mismatched
-prelink base addresses. Fixes BZ 175075.
+prelink base addresses. Fixes BZ 175075, BZ 190545.
* Tue Feb 14 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.106
- Bump up release number.
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/sources,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- sources 3 Apr 2005 00:30:15 -0000 1.18
+++ sources 27 May 2006 07:34:30 -0000 1.19
@@ -1,2 +1 @@
05b928f41fa5b482e49ca2c24762a0ae gdb-6.3.tar.bz2
-53ec99f09e771b542af4cdb8d2a39fd5 gdb-6.3.50.20050401.tar.bz2
--- gdb-6.3-sigchld-exception-20060331.patch DELETED ---
- Previous message (by thread): rpms/kernel/devel linux-2.6-debug-list_head.patch,1.2,1.3
- Next message (by thread): rpms/gdb/devel gdb-6.3-catch-debug-registers-error-20060527.patch, NONE, 1.1 .cvsignore, 1.18, 1.19 gdb-6.3-augmS-20060303.patch, 1.2, 1.3 gdb-6.3-cfaval-20060303.patch, 1.3, 1.4 gdb-6.3-gstack-without-path-20060414.patch, 1.1, 1.2 gdb.spec, 1.181, 1.182 sources, 1.18, 1.19 gdb-6.1post-readnever-nov2004.patch, 1.3, NONE gdb-6.3-sigchld-exception-20060331.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list