GDB emits end of lines as \r\n, we currently match the reverse \n\r, possibly leading to mismatches under racy conditions.
I noticed this while running the GCC testsuite using the equivalent of GDB's READ1 feature [1] which helps detecting bufferization issues. Adjusting the first regexp to match the right order implied fixing the second one, to skip the empty lines. Tested on aarch64-linux-gnu. [1] https//github.com/bminor/binutils-gdb/blob/master/gdb/testsuite/README#L269 2024-01-24 Christophe Lyon <christophe.l...@linaro.org> libstdc++-v3/ * testsuite/lib/gdb-test.exp (gdb-test): Fix regexps. --- libstdc++-v3/testsuite/lib/gdb-test.exp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/testsuite/lib/gdb-test.exp b/libstdc++-v3/testsuite/lib/gdb-test.exp index 31206f2fc32..0de8d9ee153 100644 --- a/libstdc++-v3/testsuite/lib/gdb-test.exp +++ b/libstdc++-v3/testsuite/lib/gdb-test.exp @@ -194,7 +194,7 @@ proc gdb-test { marker {selector {}} {load_xmethods 0} } { set test_counter 0 remote_expect target [timeout_value] { - -re {^(type|\$([0-9]+)) = ([^\n\r]*)[\n\r]+} { + -re {^(type|\$([0-9]+)) = ([^\n\r]*)\r\n} { send_log "got: $expect_out(buffer)" incr test_counter @@ -250,7 +250,7 @@ proc gdb-test { marker {selector {}} {load_xmethods 0} } { return } - -re {^[^$][^\n\r]*[\n\r]+} { + -re {^[\r\n]*[^$][^\n\r]*\r\n} { send_log "skipping: $expect_out(buffer)" exp_continue } -- 2.34.1