[gdb] [testsuite] Fix runaway gdb.base/attach processes.

Jan Kratochvil jankratochvil at fedoraproject.org
Sun Sep 14 17:22:50 UTC 2014


commit 3887bdb15a479be46fd49b732c42b7130333871f
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Sun Sep 14 19:22:44 2014 +0200

    [testsuite] Fix runaway gdb.base/attach processes.

 gdb-async-stopped-on-pid-arg-testsuite.patch |   89 ++++++++++++++++++++++++++
 gdb.spec                                     |    7 ++-
 2 files changed, 95 insertions(+), 1 deletions(-)
---
diff --git a/gdb-async-stopped-on-pid-arg-testsuite.patch b/gdb-async-stopped-on-pid-arg-testsuite.patch
new file mode 100644
index 0000000..f50ead1
--- /dev/null
+++ b/gdb-async-stopped-on-pid-arg-testsuite.patch
@@ -0,0 +1,89 @@
+http://sourceware.org/ml/gdb-patches/2014-09/msg00381.html
+Subject: [testsuite patch] runaway attach processes  [Re: Regression: GDB stopped on run with attached process (PR 17347)]
+
+
+--RnlQjJ0d97Da+TV1
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+
+On Thu, 11 Sep 2014 14:35:53 +0200, Pedro Alves wrote:
+> Thanks, pushed to both master and 7.8.
+
+I have started seeing occasional runaway 'attach' processes these days.
+I cannot be certain it is really caused by this patch, for example
+grep 'FAIL.*cmdline attach run' does not show anything in my logs.
+
+But as I remember this 'attach' runaway process always happened in GDB (but
+I do not remember it in the past months) I think it would be most safe to just
+solve it forever by [attached].
+
+
+Jan
+
+--RnlQjJ0d97Da+TV1
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline; filename=1
+
+gdb/testsuite/
+2014-09-12  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	* gdb.base/attach.c: Include unistd.h.
+	(main): Call alarm.  Add label postloop.
+	* gdb.base/attach.exp (do_attach_tests): Use gdb_get_line_number,
+	gdb_breakpoint, gdb_continue_to_breakpoint.
+	(test_command_line_attach_run): Kill ${testpid} in one exit path.
+
+diff --git a/gdb/testsuite/gdb.base/attach.c b/gdb/testsuite/gdb.base/attach.c
+index 0041b47..91b180c 100644
+--- a/gdb/testsuite/gdb.base/attach.c
++++ b/gdb/testsuite/gdb.base/attach.c
+@@ -5,6 +5,7 @@
+    exit unless/until gdb sets the variable to non-zero.)
+    */
+ #include <stdio.h>
++#include <unistd.h>
+ 
+ int  should_exit = 0;
+ 
+@@ -12,9 +13,11 @@ int main ()
+ {
+   int  local_i = 0;
+ 
++  alarm (60);
++
+   while (! should_exit)
+     {
+       local_i++;
+     }
+-  return 0;
++  return 0; /* postloop */
+ }
+diff --git a/gdb/testsuite/gdb.base/attach.exp b/gdb/testsuite/gdb.base/attach.exp
+index 6340496..5fb5c53 100644
+--- a/gdb/testsuite/gdb.base/attach.exp
++++ b/gdb/testsuite/gdb.base/attach.exp
+@@ -256,11 +256,8 @@ proc do_attach_tests {} {
+ 
+     # Verify that the modification really happened.
+ 
+-    gdb_test "tbreak 19" "Temporary breakpoint .*at.*$srcfile, line 19.*" \
+-	"after attach2, set tbreak postloop"
+-
+-    gdb_test "continue" "main.*at.*$srcfile:19.*" \
+-	"after attach2, reach tbreak postloop"
++    gdb_breakpoint [gdb_get_line_number "postloop"] temporary
++    gdb_continue_to_breakpoint "postloop" ".* postloop .*"
+ 
+     # Allow the test process to exit, to cleanup after ourselves.
+ 
+@@ -451,6 +448,7 @@ proc test_command_line_attach_run {} {
+ 		 "-iex set\\ height\\ 0 -iex set\\ width\\ 0 --pid=$testpid -ex \"start\""]
+ 	if { $res != 0} {
+ 	    fail $test
++	    remote_exec build "kill -9 ${testpid}"
+ 	    return $res
+ 	}
+ 	gdb_test_multiple "" $test {
+
+--RnlQjJ0d97Da+TV1--
+
diff --git a/gdb.spec b/gdb.spec
index 850398d..94bacf7 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -26,7 +26,7 @@ Version: 7.8
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 21%{?dist}
+Release: 22%{?dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
 Group: Development/Debuggers
@@ -538,6 +538,7 @@ Patch929: python-framefilter-invalidarg.patch
 # Fix GDB SIGTT* Stopped when using the PID argument (BZ 1136704, Pedro Alves).
 Patch930: gdb-async-stopped-on-pid-arg-1of2.patch
 Patch931: gdb-async-stopped-on-pid-arg-2of2.patch
+Patch970: gdb-async-stopped-on-pid-arg-testsuite.patch
 
 %if 0%{!?rhel:1} || 0%{?rhel} > 6
 # RL_STATE_FEDORA_GDB would not be found for:
@@ -828,6 +829,7 @@ find -name "*.info*"|xargs rm -f
 %patch929 -p1
 %patch930 -p1
 %patch931 -p1
+%patch970 -p1
 
 %patch848 -p1
 %if 0%{!?el6:1}
@@ -1323,6 +1325,9 @@ then
 fi
 
 %changelog
+* Sun Sep 14 2014 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.8-22.fc21
+- [testsuite] Fix runaway gdb.base/attach processes.
+
 * Sun Sep  7 2014 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.8-21.fc21
 - Fix GDB SIGTT* Stopped when using the PID argument (BZ 1136704, Pedro Alves).
 


More information about the scm-commits mailing list