Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: Pedro Alves <pedro@codesourcery.com>
Cc: gdb-patches@sourceware.org, Kevin Pouget <kevin.pouget@gmail.com>,
	       Tom Tromey <tromey@redhat.com>
Subject: [patch] Forbid "run" etc. for use_gdb_stub targets  [Re: [patch] gdb.python/py-events.exp: Disable multi-inferior for gdbserver]
Date: Thu, 27 Oct 2011 10:31:00 -0000	[thread overview]
Message-ID: <20111027101700.GA21805@host1.jankratochvil.net> (raw)
In-Reply-To: <201110261448.58804.pedro@codesourcery.com>

On Wed, 26 Oct 2011 15:48:58 +0200, Pedro Alves wrote:
> "run" doesn't work with "target remote" either.  If that is succeeding,
> it's because it's actually running the default native target,

Thanks for catching it.  I have seen these false runs already before,
therefore I find it unmanageable to always catch it at least myself.

Maybe some more testfiles could be fixed instead of skipped below, I fixed
one, still I find that as a possible different patch.

I am not sure what is the correct way to handle gdbserver_start_extended.
gdb.server/ext-*.exp run gdbserver even in the default native run.  They
either should not run in the default native or they should not run in the
non-extended gdbserver mode.  Currently they run in both modes the same way.

AFAIK there is currently no way to run the whole testsuite in extended
gdbserver mode.  (There were some attempts for it on the archer list IIRC.)

No regressions on {x86_64,x86_64-m32,i686}-fedora16pre-linux-gnu and with
gdbsever.


Thanks,
Jan


gdb/testsuite/
2011-10-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/async-shell.exp: Skip the testfile for is_remote target.
	* gdb.base/attach-pie-misread.exp: Skip the testfile for use_gdb_stub.
	* gdb.base/break-interp.exp: Likewise.
	* gdb.base/default.exp (attach, run "r" abbreviation, run): Skip these
	testcases for use_gdb_stub.
	* gdb.dwarf2/dw2-restore.exp: Fix the run for use_gdb_stub.
	(continue): New testcase.
	* gdb.python/py-events.exp: Skip the testfile for is_remote target.
	* gdb.threads/attach-into-signal.exp: Likewise.
	* gdb.threads/attach-stopped.exp: Likewise.
	* gdb.threads/attachstop-mt.exp: Likewise.
	* lib/gdb.exp (gdb_test_multiple): Forbid run, start or attach for
	use_gdb_stub without gdbserver_start_extended.
	* lib/gdbserver-support.exp (gdbserver_start_extended): Set global
	gdbserver_protocol and gdbserver_gdbport.

--- a/gdb/testsuite/gdb.base/async-shell.exp
+++ b/gdb/testsuite/gdb.base/async-shell.exp
@@ -20,6 +20,10 @@ if { ![support_displaced_stepping] } {
     return -1
 }
 
+if [is_remote target] { 
+    return -1
+}
+
 if { [prepare_for_testing ${testfile}.exp ${testfile}] } {
     return -1
 }
--- a/gdb/testsuite/gdb.base/attach-pie-misread.exp
+++ b/gdb/testsuite/gdb.base/attach-pie-misread.exp
@@ -14,7 +14,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # This test only works on GNU/Linux.
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] || [skip_shlib_tests]} {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+     || ![istarget *-linux*] || [skip_shlib_tests]} {
     continue
 }
 
--- a/gdb/testsuite/gdb.base/break-interp.exp
+++ b/gdb/testsuite/gdb.base/break-interp.exp
@@ -14,7 +14,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # This test only works on GNU/Linux.
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] || [skip_shlib_tests]} {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+     || ![istarget *-linux*] || [skip_shlib_tests]} {
     continue
 }
 
--- a/gdb/testsuite/gdb.base/default.exp
+++ b/gdb/testsuite/gdb.base/default.exp
@@ -39,23 +39,23 @@ gdb_test "append value"  "Missing filename\."
 gdb_test "append binary memory" "Missing filename\." 
 gdb_test "append binary value"  "Missing filename\." 
 
-setup_xfail "mips-idt-*"
-gdb_test_multiple "attach" "attach" {
-    -re "Argument required .(process-id|program) to attach.*$gdb_prompt $"\
-	{ pass "attach" }
-    -re "You can't do that when your target is `None'.*$gdb_prompt $"\
-	{ pass "attach" }
-    -re "You can't do that without a process to debug.*$gdb_prompt $"\
-	{ pass "attach" }
-    -re "Don't know how to attach.  Try \"help target\"..*$gdb_prompt $"\
-	{ pass "attach" }
-    -re "Kill it. .y or n." {
-	send_gdb "y\n"
-	exp_continue
+if ![target_info exists use_gdb_stub] {
+    setup_xfail "mips-idt-*"
+    gdb_test_multiple "attach" "attach" {
+	-re "Argument required .(process-id|program) to attach.*$gdb_prompt $"\
+	    { pass "attach" }
+	-re "You can't do that when your target is `None'.*$gdb_prompt $"\
+	    { pass "attach" }
+	-re "You can't do that without a process to debug.*$gdb_prompt $"\
+	    { pass "attach" }
+	-re "Don't know how to attach.  Try \"help target\"..*$gdb_prompt $"\
+	    { pass "attach" }
+	-re "Kill it. .y or n." {
+	    send_gdb "y\n"
+	    exp_continue
+	}
     }
-}
 
-if ![target_info exists use_gdb_stub] {
     gdb_test "break" "No default breakpoint address now." "break"
     foreach i "b br bre brea" {
 	gdb_test $i "No default breakpoint address now." "break \"$i\" abbreviation"
@@ -420,7 +420,9 @@ gdb_test "ptype" "The history is empty." "ptype"
 gdb_test "pwd" "Working directory .*" "pwd"
 
 #test run "r" abbreviation
-if [istarget "*-*-vxworks*"] then {
+if [target_info exists use_gdb_stub] {
+    # Only extended-remote supports "run".
+} elseif [istarget "*-*-vxworks*"] then {
     gdb_test "set args" ".*" "" 
 
     gdb_test "r" "Starting program: .*
@@ -446,7 +448,9 @@ You must specify a function name to run, and arguments if any"\
 }
 
 #test run
-if [istarget "*-*-vxworks*"] then {
+if [target_info exists use_gdb_stub] {
+    # Only extended-remote supports "run".
+} elseif [istarget "*-*-vxworks*"] then {
     gdb_test "set args" ".*" "" 
 
     gdb_test "run" "Starting program: .*
--- a/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
@@ -33,5 +33,8 @@ gdb_start
 gdb_reinitialize_dir $srcdir/$subdir
 gdb_load ${binfile}
 
-gdb_test "run" ".*"
-gdb_test "where" ".*$hex in foo ().+$hex in _start ().*"
+if ![runto foo] {
+    return 0
+}
+gdb_test "continue" "$hex in foo \\(\\)"
+gdb_test "where" "#0 +$hex in foo \\(\\)\r\n#1 +$hex in _start \\(\\)"
--- a/gdb/testsuite/gdb.python/py-events.exp
+++ b/gdb/testsuite/gdb.python/py-events.exp
@@ -13,6 +13,10 @@
 # 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 [target_info exists use_gdb_stub] {
+    return 0
+}
+
 if $tracelevel then {
     strace $tracelevel
 }
--- a/gdb/testsuite/gdb.threads/attach-into-signal.exp
+++ b/gdb/testsuite/gdb.threads/attach-into-signal.exp
@@ -17,7 +17,8 @@
 # This file was created by Jan Kratochvil <jan.kratochvil@redhat.com>.
 
 # This test only works on Linux
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] } {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+     || ![istarget *-linux*] } {
     continue
 }
 
--- a/gdb/testsuite/gdb.threads/attach-stopped.exp
+++ b/gdb/testsuite/gdb.threads/attach-stopped.exp
@@ -18,7 +18,8 @@
 # This file was updated by Jan Kratochvil <jan.kratochvil@redhat.com>.
 
 # This test only works on Linux
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] } {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+     || ![istarget *-linux*] } {
     continue
 }
 
--- a/gdb/testsuite/gdb.threads/attachstop-mt.exp
+++ b/gdb/testsuite/gdb.threads/attachstop-mt.exp
@@ -17,7 +17,8 @@
 # <jjohnstn@redhat.com> and Jan Kratochvil <jan.kratochvil@redhat.com>.
 
 # This test only works on Linux
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] } {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+     || ![istarget *-linux*] } {
     continue
 }
 
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -601,6 +601,18 @@ proc gdb_test_multiple { command message user_code } {
 	error "Invalid newline in \"$message\" test"
     }
 
+    if {[regexp -nocase {^\s*(r|run|star|start|at|att|atta|attac|attach)\M} \
+	 $command]
+        && [target_info exists use_gdb_stub]} {
+	global gdbserver_protocol
+
+	# gdbserver_start_extended runs as a part of non-extended configuration.
+	if {![info exists gdbserver_protocol]
+	    || ![string match "extended-*" $gdbserver_protocol]} {
+	    error "gdbserver does not support $command without extended-remote"
+	}
+    }
+
     # TCL/EXPECT WART ALERT
     # Expect does something very strange when it receives a single braced
     # argument.  It splits it along word separators and performs substitutions.
--- a/gdb/testsuite/lib/gdbserver-support.exp
+++ b/gdb/testsuite/lib/gdbserver-support.exp
@@ -337,6 +337,9 @@ proc gdbserver_reconnect { } {
 
 # Start and connect to a gdbserver in extended mode.
 proc gdbserver_start_extended { } {
+    global gdbserver_protocol
+    global gdbserver_gdbport
+
     set res [gdbserver_start "--multi" ""]
     set gdbserver_protocol "extended-[lindex $res 0]"
     set gdbserver_gdbport [lindex $res 1]


  reply	other threads:[~2011-10-27 10:17 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-21  9:19 [PATCH] PR/12691 Add the inferior to Python exited event Kevin Pouget
2011-04-21 10:01 ` Eli Zaretskii
2011-04-25 18:19 ` Tom Tromey
2011-04-26  8:24   ` Kevin Pouget
2011-08-31 14:34     ` Kevin Pouget
2011-08-31 14:46       ` Eli Zaretskii
2011-08-31 14:58         ` Kevin Pouget
2011-08-31 17:27           ` Eli Zaretskii
2011-08-31 17:53             ` Tom Tromey
2011-08-31 17:59               ` Eli Zaretskii
2011-09-01  9:18                 ` Kevin Pouget
2011-09-01  8:45                   ` Kevin Pouget
2011-09-01 10:12                   ` Eli Zaretskii
2011-09-01 11:29                     ` Kevin Pouget
2011-09-15 12:49                       ` Kevin Pouget
2011-09-15 13:58                         ` Eli Zaretskii
2011-09-15 14:19                         ` Paul_Koning
2011-09-15 15:27                           ` Kevin Pouget
2011-09-15 15:42                           ` Eli Zaretskii
2011-08-31 15:50       ` Tom Tromey
2011-09-19 10:37         ` Kevin Pouget
2011-09-19 10:41           ` Eli Zaretskii
2011-10-03 16:38           ` Tom Tromey
2011-10-04  8:05             ` Kevin Pouget
2011-10-05 12:15               ` Regression (or a new FAIL?): gdb.python/py-events.exp [Re: [PATCH] PR/12691 Add the inferior to Python exited event] Jan Kratochvil
2011-10-05 12:37                 ` Kevin Pouget
2011-10-05 14:16                   ` Jan Kratochvil
2011-10-05 14:56                     ` Kevin Pouget
2011-10-09 18:17                       ` [patch] gdb.python/py-events.exp: Disable multi-inferior for gdbserver [Re: Regression (or a new FAIL?): gdb.python/py-events.exp] Jan Kratochvil
2011-10-26 15:07                         ` Pedro Alves
2011-10-27 10:31                           ` Jan Kratochvil [this message]
2011-10-27 18:26                             ` [patch] Forbid "run" etc. for use_gdb_stub targets [Re: [patch] gdb.python/py-events.exp: Disable multi-inferior for gdbserver] Pedro Alves
2011-10-28 17:40                               ` [commit test fixes] " Jan Kratochvil
2011-10-28 17:42                               ` Jan Kratochvil
2011-10-28 18:32                                 ` Pedro Alves
2011-10-29 19:55                                   ` Jan Kratochvil
2011-12-03 18:37                                     ` ping: Re: [patch] Forbid "run" etc. for use_gdb_stub targets Jan Kratochvil
2011-12-03 19:15                                       ` Pedro Alves
2011-12-03 20:22                                         ` [commit] " Jan Kratochvil
2011-12-04  1:02                                       ` ping: " Doug Evans
2011-12-04  1:30                                         ` Jan Kratochvil
2011-12-04  2:55                                           ` Doug Evans
2011-12-05 20:25                                             ` Jan Kratochvil
2011-12-05 21:44                                               ` Doug Evans
2011-12-05 23:36                                                 ` Doug Evans

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111027101700.GA21805@host1.jankratochvil.net \
    --to=jan.kratochvil@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kevin.pouget@gmail.com \
    --cc=pedro@codesourcery.com \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox