diff --git a/.cvsignore b/.cvsignore index a997237..3382a59 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,3 +1 @@ -gdb+dejagnu-20040607.tar.bz2 gdb-6.3.tar.bz2 -gdb-6.3.50.20050401.tar.bz2 diff --git a/gdb-6.3-catch-debug-registers-error-20060527.patch b/gdb-6.3-catch-debug-registers-error-20060527.patch new file mode 100644 index 0000000..52a8bcc --- /dev/null +++ b/gdb-6.3-catch-debug-registers-error-20060527.patch @@ -0,0 +1,49 @@ +for gdb-6.3/gdb/ChangeLog +from Alexandre Oliva + + * 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. */ diff --git a/gdb-6.3-gstack-without-path-20060414.patch b/gdb-6.3-gstack-without-path-20060414.patch index 9ddef68..ffc4b69 100644 --- a/gdb-6.3-gstack-without-path-20060414.patch +++ b/gdb-6.3-gstack-without-path-20060414.patch @@ -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 @@ Index: gdb-6.3/gdb/gstack.sh 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 <&1 | $backtrace EOF diff --git a/gdb.spec b/gdb.spec index db3cd0e..0bf567a 100644 --- a/gdb.spec +++ b/gdb.spec @@ -11,7 +11,7 @@ Name: gdb Version: 6.3.0.0 # The release always contains a leading reserved number, start it at 0. -Release: 1.129.FC6 +Release: 1.130.FC6 License: GPL Group: Development/Debuggers @@ -281,8 +281,8 @@ Patch175: gdb-6.3-support-fopen64-20060413.patch # 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 @@ fi # don't include the files in include, they are part of binutils %changelog +* Sat May 27 2006 Alexandre Oliva - 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 - 6.3.0.0-1.129 - Add not-automatically-generated file to fopen64 patch (BZ 191948). * Fri Apr 14 2006 Alexandre Oliva - 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 @@ upgradability. - Bump up release number. * Thu Apr 13 2006 Stepan Kasal - 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 - 6.3.0.0-1.122 - Bump up release number. * Wed Mar 8 2006 Alexandre Oliva - 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 - 6.3.0.0-1.118 @@ -617,7 +624,7 @@ system libraries are not prelinked. * Thu Feb 23 2006 Alexandre Oliva - 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 - 6.3.0.0-1.106 - Bump up release number. diff --git a/sources b/sources index b704c05..f112a78 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ 05b928f41fa5b482e49ca2c24762a0ae gdb-6.3.tar.bz2 -53ec99f09e771b542af4cdb8d2a39fd5 gdb-6.3.50.20050401.tar.bz2