* [PATCH 0/2] [gdb] Two fixes for gdb.base/gstack.exp on msys2-ucrt64
@ 2026-09-17 13:06 Tom de Vries
2026-09-17 13:06 ` [PATCH 1/2] [gdb/testsuite] Fix timeout in gdb.base/gstack.exp Tom de Vries
2026-09-17 13:06 ` [PATCH 2/2] [gdb] Handle AWK=gawk in gstack Tom de Vries
0 siblings, 2 replies; 3+ messages in thread
From: Tom de Vries @ 2026-09-17 13:06 UTC (permalink / raw)
To: gdb-patches
The first patch fixes a timeout in the test-case.
The second patch allows "AWK=gawk gstack".
Tom de Vries (2):
[gdb/testsuite] Fix timeout in gdb.base/gstack.exp
[gdb] Handle AWK=gawk in gstack
gdb/gstack-1.in | 2 ++
gdb/testsuite/gdb.base/gstack.exp | 6 +++++-
gdb/testsuite/lib/gdb.exp | 18 ++++++++++++++++++
3 files changed, 25 insertions(+), 1 deletion(-)
base-commit: 262d0a898d69671af67680f2b1c9734dfd50cc99
--
2.51.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] [gdb/testsuite] Fix timeout in gdb.base/gstack.exp
2026-09-17 13:06 [PATCH 0/2] [gdb] Two fixes for gdb.base/gstack.exp on msys2-ucrt64 Tom de Vries
@ 2026-09-17 13:06 ` Tom de Vries
2026-09-17 13:06 ` [PATCH 2/2] [gdb] Handle AWK=gawk in gstack Tom de Vries
1 sibling, 0 replies; 3+ messages in thread
From: Tom de Vries @ 2026-09-17 13:06 UTC (permalink / raw)
To: gdb-patches
When running test-case gdb.base/gstack.exp on msys2-ucrt64, I run into a timeout:
...
PASS: $exp: spawn inferior
looping^M^M
FAIL: $exp: wait for inferior to loop (timeout)
...
The extra ^M is due to the translation mode of the output stream, which is set
to text by default.
Fix this by accepting the extra ^M, using a new proc multi_line_ttm, where
ttm stands for text translation mode.
---
gdb/testsuite/gdb.base/gstack.exp | 6 +++++-
gdb/testsuite/lib/gdb.exp | 18 ++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.base/gstack.exp b/gdb/testsuite/gdb.base/gstack.exp
index bc524215d50..8c360198e93 100644
--- a/gdb/testsuite/gdb.base/gstack.exp
+++ b/gdb/testsuite/gdb.base/gstack.exp
@@ -33,8 +33,12 @@ set test_spawn_id $res
# Wait for the spawned program to loop.
set test "wait for inferior to loop"
+set re \
+ [multi_line_ttm \
+ "looping" \
+ ""]
gdb_expect {
- -re "looping\r\n" {
+ -re $re {
pass $test
}
eof {
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 1ebdaf6ba10..c8dd4414b26 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -10772,6 +10772,24 @@ proc multi_line { args } {
return [join $args "\r\n"]
}
+# As multi_line, but deals with text translation mode. On windows, if the
+# translation mode of an output stream of an executable is set to text, every
+# '\n' is translated to '\r\n'. For GDB, we work around this using
+# -binary-output, so we can just use multi_line. But for other executables,
+# we need to handle this.
+
+proc multi_line_ttm { args } {
+ if { ![ishost "*-*-mingw*"] } {
+ return [multi_line {*}$args]
+ }
+
+ if { [llength $args] == 1 } {
+ set hint "forgot {*} before list argument?"
+ error "multi_line_ttm called with one argument ($hint)"
+ }
+ return [join $args "\r\r\n"]
+}
+
# Similar to the above, but while multi_line is meant to be used to
# match GDB output, this one is meant to be used to build strings to
# send as GDB input.
--
2.51.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/2] [gdb] Handle AWK=gawk in gstack
2026-09-17 13:06 [PATCH 0/2] [gdb] Two fixes for gdb.base/gstack.exp on msys2-ucrt64 Tom de Vries
2026-09-17 13:06 ` [PATCH 1/2] [gdb/testsuite] Fix timeout in gdb.base/gstack.exp Tom de Vries
@ 2026-09-17 13:06 ` Tom de Vries
1 sibling, 0 replies; 3+ messages in thread
From: Tom de Vries @ 2026-09-17 13:06 UTC (permalink / raw)
To: gdb-patches
When running test-case gdb.base/gstack.exp on msys2-ucrt64, I run into:
...
PASS: $exp: spawn gstack
gstack: could not find usable awk interpreter
GSTACK-END
PASS: $exp: gstack exits with no error
PASS: $exp: gstack's exit status is 0
UNSUPPORTED: gdb.base/gstack.exp: no awk interpreter found
...
The failure can be reproducing on the command line:
...
$ AWK=gawk gstack
gstack: could not find usable awk interpreter
...
Fix this in gstack using:
...
AWK=$(command -v "$AWK")
...
---
gdb/gstack-1.in | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gdb/gstack-1.in b/gdb/gstack-1.in
index 9079e70a746..46fa9429d86 100755
--- a/gdb/gstack-1.in
+++ b/gdb/gstack-1.in
@@ -34,6 +34,8 @@ if [ -z "$AWK" ]; then
test -n "$awk_prog" && break
done
AWK="$awk_prog"
+else
+ AWK=$(command -v "$AWK")
fi
if [ ! -x "$AWK" ]; then
echo "$0: could not find usable awk interpreter" 1>&2
--
2.51.0
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-17 13:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-17 13:06 [PATCH 0/2] [gdb] Two fixes for gdb.base/gstack.exp on msys2-ucrt64 Tom de Vries
2026-09-17 13:06 ` [PATCH 1/2] [gdb/testsuite] Fix timeout in gdb.base/gstack.exp Tom de Vries
2026-09-17 13:06 ` [PATCH 2/2] [gdb] Handle AWK=gawk in gstack Tom de Vries
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox