From: Yao Qi <yao@codesourcery.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] native mingw32 gdb, eol format
Date: Sat, 20 Jul 2013 00:38:00 -0000 [thread overview]
Message-ID: <51E9DBD4.4070605@codesourcery.com> (raw)
In-Reply-To: <83ppuj2p7r.fsf@gnu.org>
On 07/16/2013 10:50 AM, Eli Zaretskii wrote:
> No, it's not. A MinGW GDB is a native Windows program, and should
> behave like one. Windows programs generally don't expect text coming
> through pipes to have Unix EOL format. Also, it is terribly confusing
> to have GDB behave differently with its standard handles redirected to
> a pipe as opposed to disk files or the console device.
>
OK, that makes sense. I also find something similar was discussed in
2009,
[RFC] Improve testsuite for poor expect behavior
http://sourceware.org/ml/gdb-patches/2009-06/msg00346.html
but patches didn't go in then. I withdraw this patch.
> This is a problem with the test suite, so please fix it in the test
> suite. If you_must_ make the change in GDB, please introduce some
> specialized option to do that. But changing the default behavior like
> that is IMO a no-starter.
Looks fixing the testsuite to allow '\r\r\n' is a promising approach,
however it is not a small piece of work. The patch below is a
proof-of-concept implementation, and we need to apply the change (\r
-> ${cr}) to the testsuite. Please let me know is it what you
want, and then I can evaluate how much efforts are needed here.
--
Yao (é½å°§)
gdb/testsuite:
* gdb.trace/deltrace.exp: Match $cr at the end of each line.
* lib/gdb.exp: Set cr.
---
gdb/testsuite/gdb.trace/deltrace.exp | 20 ++++++++++----------
gdb/testsuite/lib/gdb.exp | 8 ++++++++
2 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/gdb/testsuite/gdb.trace/deltrace.exp b/gdb/testsuite/gdb.trace/deltrace.exp
index 1053629..3f2a8b7 100644
--- a/gdb/testsuite/gdb.trace/deltrace.exp
+++ b/gdb/testsuite/gdb.trace/deltrace.exp
@@ -82,12 +82,12 @@ if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then {
gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.*
-\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target.
-\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target.
-\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target." \
+\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}
+\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}
+\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}" \
"3.2a: set three tracepoints"
#gdb_test_no_output "delete tracepoint $trcpt1" ""
@@ -105,10 +105,10 @@ gdb_test_multiple "delete tracepoint $trcpt1" "3.2b: delete first tracepoint" {
gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.*
-\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target.
-\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target." \
+\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}
+\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}" \
"3.2c: verify delete first tracepoint"
#gdb_test_no_output "delete tracepoint $trcpt2" ""
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index cb92a94..5d2ad15 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -102,6 +102,14 @@ set octal "\[0-7\]+"
set inferior_exited_re "(\\\[Inferior \[0-9\]+ \\(.*\\) exited)"
+# GDB configured for mingw or cygwin host can be run in a Cygwin PTY,
+# which expands '\n' to '\r\n', so the EOL ('\r\n') becomes '\r\r\n'.
+if { [ishost *-*-mingw*] || [ishost *cygwin*] } {
+ set cr "\r+"
+} else {
+ set cr "\r"
+}
+
### Only procedures should come after this point.
#
--
1.7.7.6
next prev parent reply other threads:[~2013-07-20 0:38 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-16 1:07 Yao Qi
2013-07-16 2:50 ` Eli Zaretskii
2013-07-20 0:38 ` Yao Qi [this message]
2013-07-20 6:55 ` Eli Zaretskii
2013-07-23 19:03 ` Tom Tromey
2013-07-23 19:08 ` Eli Zaretskii
2013-07-23 20:58 ` Tom Tromey
2013-07-24 3:46 ` Eli Zaretskii
2013-07-24 9:09 ` Yao Qi
2013-09-17 13:07 ` [PATCH 0/4] Match \r\r\n in testsuite Yao Qi
2013-09-17 13:07 ` [PATCH 4/4] Replace "." with "\r+" Yao Qi
2013-09-17 13:07 ` [PATCH 1/4] Use gdb_test_sequence to test "info tracepoints" Yao Qi
2013-09-17 13:07 ` [PATCH 3/4] Transform \r\n in MI variables Yao Qi
2013-09-17 13:07 ` [PATCH 2/4] Transform "\r\n" in pattern to "\r+\n" Yao Qi
2013-09-17 23:11 ` Pierre Muller
2013-09-17 13:35 ` [PATCH 0/4] Match \r\r\n in testsuite Joel Brobecker
2013-09-17 13:59 ` Yao Qi
2013-09-17 14:06 ` Joel Brobecker
2013-09-18 8:21 ` Yao Qi
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=51E9DBD4.4070605@codesourcery.com \
--to=yao@codesourcery.com \
--cc=eliz@gnu.org \
--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