From: Tiezhu Yang <yangtiezhu@loongson.cn>
To: gdb-patches@sourceware.org
Subject: [PATCH v2 1/4] gdb: testsuite: remove attach test from can_spawn_for_attach
Date: Thu, 17 Mar 2022 12:43:30 +0800 [thread overview]
Message-ID: <1647492213-21824-2-git-send-email-yangtiezhu@loongson.cn> (raw)
In-Reply-To: <1647492213-21824-1-git-send-email-yangtiezhu@loongson.cn>
As Pedro Alves said, caching procs should not issue pass/fail [1],
this commit removes attach test from can_spawn_for_attach, at the
same time, use "verbose -log" instead of "unsupported" to get a
trace about why a test run doesn't support spawning for attach.
[1] https://sourceware.org/pipermail/gdb-patches/2022-March/186311.html
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
gdb/testsuite/lib/gdb.exp | 52 ++++++++---------------------------------------
1 file changed, 9 insertions(+), 43 deletions(-)
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 08726f7..f508ac6 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -5090,12 +5090,12 @@ proc gdb_exit { } {
# Return true if we can spawn a program on the target and attach to
# it.
-gdb_caching_proc can_spawn_for_attach {
+proc can_spawn_for_attach { } {
# We use exp_pid to get the inferior's pid, assuming that gives
# back the pid of the program. On remote boards, that would give
# us instead the PID of e.g., the ssh client, etc.
if [is_remote target] then {
- unsupported "skip attach tests (target is remote)"
+ verbose -log "skip attach tests (target is remote)"
return 0
}
@@ -5103,50 +5103,10 @@ gdb_caching_proc can_spawn_for_attach {
# stub-like, where GDB finds the program already started on
# initial connection.
if {[target_info exists use_gdb_stub]} {
- unsupported "skip attach tests (target is stub)"
+ verbose -log "skip attach tests (target is stub)"
return 0
}
- set me "can_spawn_for_attach"
- set src { int main (void) { sleep (600); return 0; } }
- if {![gdb_simple_compile $me $src executable]} {
- return 0
- }
-
- set test_spawn_id [spawn_wait_for_attach $obj]
- set test_pid [spawn_id_get_pid $test_spawn_id]
-
- gdb_start
- file delete $obj
- gdb_test_multiple "attach $test_pid" "can spawn for attach" {
- -re -wrap "Attaching to process $test_pid\r\n.*No executable file now.*" {
- pass $gdb_test_name
- kill_wait_spawned_process $test_spawn_id
- return 1
- }
- -re -wrap "Attaching to process $test_pid\r\n.*ptrace: Operation not permitted\\." {
- unsupported "$gdb_test_name (Operation not permitted)"
- kill_wait_spawned_process $test_spawn_id
- return 0
- }
- -re -wrap "Attaching to process $test_pid\r\n.*Attaching to process $test_pid failed" {
- unsupported "$gdb_test_name (Attaching to process failed)"
- kill_wait_spawned_process $test_spawn_id
- return 0
- }
- -re -wrap "Attaching to process $test_pid\r\n.*XML support was disabled at compile time.*" {
- pass $gdb_test_name
- kill_wait_spawned_process $test_spawn_id
- return 1
- }
- -re "A program is being debugged already. Kill it. .y or n. " {
- send_gdb "y\n"
- exp_continue
- }
- }
-
- kill_wait_spawned_process $test_spawn_id
-
# Assume yes.
return 1
}
@@ -5196,6 +5156,12 @@ proc spawn_id_get_pid { spawn_id } {
proc spawn_wait_for_attach { executable_list } {
set spawn_id_list {}
+ if ![can_spawn_for_attach] {
+ # The caller should have checked can_spawn_for_attach itself
+ # before getting here.
+ error "can't spawn for attach with this target/board"
+ }
+
foreach {executable} $executable_list {
# Note we use Expect's spawn, not Tcl's exec, because with
# spawn we control when to wait for/reap the process. That
--
2.1.0
next prev parent reply other threads:[~2022-03-17 4:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-17 4:43 [PATCH v2 0/4] gdb: add gdb_attach to fix failed testcases Tiezhu Yang
2022-03-17 4:43 ` Tiezhu Yang [this message]
2022-03-17 11:50 ` [PATCH v2 1/4] gdb: testsuite: remove attach test from can_spawn_for_attach Simon Marchi
2022-03-17 4:43 ` [PATCH v2 2/4] gdb: testsuite: add new gdb_attach to check "attach" command Tiezhu Yang
2022-03-17 11:51 ` Simon Marchi
2022-03-17 12:02 ` Simon Marchi
2022-03-17 12:29 ` Tiezhu Yang
2022-03-17 4:43 ` [PATCH v2 3/4] gdb: testsuite: use gdb_attach to fix attach-pie-noexec.exp Tiezhu Yang
2022-03-17 11:56 ` Simon Marchi
2022-03-17 4:43 ` [PATCH v2 4/4] gdb: testsuite: use gdb_attach to fix jit-elf.exp Tiezhu Yang
2022-03-17 12:02 ` Simon Marchi
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=1647492213-21824-2-git-send-email-yangtiezhu@loongson.cn \
--to=yangtiezhu@loongson.cn \
--cc=gdb-patches@sourceware.org \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).