rpms/gdb/devel gdb-6.3-focus-cmd-prev-test.patch, NONE, 1.1 gdb-6.3-mapping-zero-inode-test.patch, NONE, 1.1 gdb-6.5-missed-trap-on-step-test.patch, NONE, 1.1 gdb.spec, 1.276, 1.277

Jan Kratochvil (jkratoch) fedora-extras-commits at redhat.com
Sun Mar 30 18:59:22 UTC 2008


Author: jkratoch

Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26153

Modified Files:
	gdb.spec 
Added Files:
	gdb-6.3-focus-cmd-prev-test.patch 
	gdb-6.3-mapping-zero-inode-test.patch 
	gdb-6.5-missed-trap-on-step-test.patch 
Log Message:
* Sun Mar 30 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8-1postcvs
- New test of hiding unexpected breakpoints on intentional step commands.
- New test of GCORE for shmid 0 shared memory mappings.
- New test of a crash on `focus cmd', `focus prev' commands.


gdb-6.3-focus-cmd-prev-test.patch:

--- NEW FILE gdb-6.3-focus-cmd-prev-test.patch ---
--- /dev/null	2008-03-23 13:41:46.072650180 +0100
+++ gdb-6.3/gdb/testsuite/gdb.base/focus-cmd-prev.exp	2008-03-23 23:46:45.000000000 +0100
@@ -0,0 +1,25 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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
+}
+
+gdb_exit
+gdb_start
+
+gdb_test "focus cmd"
+gdb_test "focus prev"

gdb-6.3-mapping-zero-inode-test.patch:

--- NEW FILE gdb-6.3-mapping-zero-inode-test.patch ---
--- /dev/null	2007-10-25 16:04:06.860116064 -0400
+++ gdb-6.3/gdb/testsuite/gdb.base/gcore-shmid0.c	2007-10-27 14:49:59.000000000 -0400
@@ -0,0 +1,82 @@
+/* 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.  */
+
+/*
+ * Test GDB's handling of gcore for mapping with a name but zero inode.
+ */
+
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <assert.h>
+
+/* We need a backtrace through the stack.  */
+
+static void
+initialized (void)
+{
+}
+
+int
+main (void)
+{
+  int sid;
+  unsigned int *addr = (void *) -1L;
+  int try;
+
+  /* The generated SID will cycle with an increment of 32768, try until it
+   * wraps to 0.  */
+
+  for (try = 0; addr == (void *) -1L; try++)
+    {
+      assert (try < 0x10000);
+
+      sid = shmget ((key_t) rand (), 0x1000, IPC_CREAT | IPC_EXCL | 0777);
+      if (sid == -1)
+	{
+	  printf ("shmget (%d, 0x1000, IPC_CREAT): errno %d\n", 0, errno);
+	  exit (1);
+	}
+
+      /* Use SID only if it is 0, retry it otherwise.  */
+
+      if (sid == 0)
+	{
+	  addr = shmat (sid, NULL, SHM_RND);
+	  if (addr == (void *) -1L)
+	    {
+	      printf ("shmat (%d, NULL, SHM_RND): errno %d\n", sid,
+		      errno);
+	      exit (1);
+	    }
+	}
+      if (shmctl (sid, IPC_RMID, NULL) != 0)
+	{
+	  printf ("shmctl (%d, IPC_RMID, NULL): errno %d\n", sid, errno);
+	  exit (1);
+	}
+    }
+
+  initialized ();
+
+  return 0;
+}
--- /dev/null	2007-10-25 16:04:06.860116064 -0400
+++ gdb-6.3/gdb/testsuite/gdb.base/gcore-shmid0.exp	2007-10-27 14:50:40.000000000 -0400
@@ -0,0 +1,116 @@
+# 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
+
+# Test GDB's handling of gcore for mapping with a name but zero inode.
+
+if $tracelevel then {
+	strace $tracelevel
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile "gcore-shmid0"
+set srcfile  ${testfile}.c
+set binfile  ${objdir}/${subdir}/${testfile}
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+     untested gcore.exp
+     return -1
+}
+
+# Start with a fresh gdb.
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+# Does this gdb support gcore?
+send_gdb "help gcore\n"
+gdb_expect {
+    -re "Undefined command: .gcore.*$gdb_prompt $" {
+	# gcore command not supported -- nothing to test here.
+	unsupported "gdb does not support gcore on this target"
+	return -1;
+    }
+    -re "Save a core file .*$gdb_prompt $" {
+	pass "help gcore"
+    }
+    -re ".*$gdb_prompt $" {
+	fail "help gcore"
+    }
+    timeout {
+	fail "help gcore (timeout)"
+    }
+}
+
+if { ! [ runto_main ] } then {
+    untested gcore-buffer-overflow.exp
+    return -1
+}
+
+gdb_breakpoint "initialized"
+gdb_continue_to_breakpoint "initialized"
+
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-shmid0.test]
+
+set test "save a corefile"
+gdb_test_multiple "gcore ${objdir}/${subdir}/gcore-shmid0.test" $test {
+    -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
+	pass $test
+    }
+    -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
+	unsupported $test
+    }
+    eof {
+	fail $test
+    }
+}
+
+# Be sure to remove the handle first.
+# But it would get removed even on a kill by GDB as the handle is already
+# deleted, just it is still attached.
+gdb_continue_to_end "finish"
+
+set test "core-file command"
+gdb_test_multiple "core-file $objdir/$subdir/gcore-shmid0.test" $test {
+    -re ".* program is being debugged already.*y or n. $" {
+	# gdb_load may connect us to a gdbserver.
+	send_gdb "y\n"
+	exp_continue;
+    }
+    -re "Core was generated by .*\r\n\#0  .*\\\(\\\).*\r\n$gdb_prompt $" {
+	# The filename does not fit there anyway so do not check it.
+	pass $test
+    }
+    -re ".*registers from core file: File in wrong format.* $" {
+	fail "core-file command (could not read registers from core file)"
+    }
+}
+
+set test "backtrace"
+gdb_test_multiple "bt" $test {
+    -re "#0 *initialized \\\(\\\) at .*#1 .* main \\\(.*$gdb_prompt $" {
+	pass $test
+    }
+    -re "#0 *initialized \\\(\\\) at .*Cannot access memory at address .*$gdb_prompt $" {
+	fail $test
+    }
+}

gdb-6.5-missed-trap-on-step-test.patch:

--- NEW FILE gdb-6.5-missed-trap-on-step-test.patch ---
Fix has been committed to:
	gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch

--- /dev/null	2007-12-14 20:45:09.113039517 +0100
+++ gdb-6.5/gdb/testsuite/gdb.base/watchpoint-during-step.exp	2007-12-24 19:42:00.000000000 +0100
@@ -0,0 +1,51 @@
+# 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 watchpoint-during-step
+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}
+
+runto_main
+
+gdb_breakpoint [gdb_get_line_number "var = 2"]
+gdb_continue_to_breakpoint "Find the first var set"
+
+gdb_test "step" ".*var = 3;" "Step to the next var set"
+
+gdb_test "watch var" "atchpoint .*: var" "Set the watchpoint"
+
+# Here is the target point.  Be careful to not have breakpoint set on the line
+# we step from as in this case it is a valid upstream KFAIL gdb/38
+
+gdb_test "step" ".*Old value = 2.*New value = 3.*" "Catch the watchpoint"
--- /dev/null	2007-12-14 20:45:09.113039517 +0100
+++ gdb-6.5/gdb/testsuite/gdb.base/watchpoint-during-step.c	2007-12-24 19:38:10.000000000 +0100
@@ -0,0 +1,30 @@
+/* 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  */
+
+static int var;
+
+int main()
+{
+  var = 1;
+  var = 2;
+  var = 3;
+  return 0;
+}


Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.276
retrieving revision 1.277
diff -u -r1.276 -r1.277
--- gdb.spec	29 Mar 2008 15:31:15 -0000	1.276
+++ gdb.spec	30 Mar 2008 18:58:47 -0000	1.277
@@ -317,6 +317,9 @@
 # Test ia64 memory leaks of the code using libunwind.
 Patch289: gdb-6.5-ia64-libunwind-leak-test.patch
 
+# Test hiding unexpected breakpoints on intentional step commands.
+Patch290: gdb-6.5-missed-trap-on-step-test.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
@@ -340,6 +343,12 @@
 # Backport fix of a segfault + PIE regression since 6.7.1 on PIE executables.
 Patch306: gdb-6.8-watchpoint-inaccessible-memory.patch
 
+# Test GCORE for shmid 0 shared memory mappings.
+Patch309: gdb-6.3-mapping-zero-inode-test.patch
+
+# Test a crash on `focus cmd', `focus prev' commands.
+Patch311: gdb-6.3-focus-cmd-prev-test.patch
+
 BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext
 BuildRequires: flex bison sharutils expat-devel
 Requires: readline
@@ -494,6 +503,7 @@
 %patch284 -p1
 %patch287 -p1
 %patch289 -p1
+%patch290 -p1
 %patch293 -p1
 %patch294 -p1
 %patch296 -p1
@@ -502,6 +512,8 @@
 %patch304 -p1
 %patch305 -p1
 %patch306 -p1
+%patch309 -p1
+%patch311 -p1
 
 find -name "*.orig" | xargs rm -f
 ! find -name "*.rej"	# Should not happen.
@@ -741,8 +753,11 @@
 %{_mandir}/*/gdbserver.1*
 
 %changelog
-* Sat Mar 29 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8-1postcvs
+* Sun Mar 30 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8-1postcvs
 - Cosmetic fix of a testcase sanity breakpoint setting (part of BZ 233852).
+- New test of hiding unexpected breakpoints on intentional step commands.
+- New test of GCORE for shmid 0 shared memory mappings.
+- New test of a crash on `focus cmd', `focus prev' commands.
 
 * Fri Mar 28 2008 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8-1
 - Upgrade to the latest upstream final release gdb-6.8.




More information about the fedora-extras-commits mailing list