From: Yao Qi <yao@codesourcery.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Fix a bug in tstatus.exp matching tstatus output
Date: Tue, 05 Mar 2013 02:24:00 -0000 [thread overview]
Message-ID: <51355731.3090609@codesourcery.com> (raw)
In-Reply-To: <20130304162248.GB4472@adacore.com>
On 03/05/2013 12:22 AM, Joel Brobecker wrote:
>> In gdb testsuite, both "\\\(" and "\\(" are used. After reading
>> section "4.3. Backslashes" in book "Exploring Expect", I think they
>> are the same on effect.
>
> I don't understand why the third backslash would be needed, though.
> The first two is the backslash escaping the '(' character in the
> regular expression. The third one escapes the '(' as the TCL string
> level, but I don't think it is a special character (like '[' is,
> for instance), is it?
>
Right, of course we can use two backslashes here.
Backslash translation is done by Tcl and pattern matcher. In Tcl,
"Sequences that have no special translation are replaced by the
character without the backslash" [1], and in pattern matcher, use
"backslashes to force the following character into its literal
equivalent." [2]
For "\\(", Tcl will translate it to "\(" and pattern matcher will treat
it as literal "(".
For "\\\(", Tcl will tranlate it "\(" as well, because it translates
"\\" to "\" and "\(" to "(".
Here is the updated patch using two backslashes.
--
Yao (é½å°§)
gdb/testsuite:
2013-03-05 Yao Qi <yao@codesourcery.com>
* gdb.trace/tstatus.exp (run_trace_experiment): Escape parentheses
by "\\".
---
gdb/testsuite/gdb.trace/tstatus.exp | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/gdb/testsuite/gdb.trace/tstatus.exp b/gdb/testsuite/gdb.trace/tstatus.exp
index 483bb20..3271ace 100644
--- a/gdb/testsuite/gdb.trace/tstatus.exp
+++ b/gdb/testsuite/gdb.trace/tstatus.exp
@@ -99,7 +99,7 @@ proc run_trace_experiment {} {
gdb_test_no_output "tstop because I can" "trace stopped with note"
gdb_test_multiple "tstatus" "check on trace status after stop" {
- -re "Trace stopped by a tstop command (because I can)\..*Trace will stop if GDB disconnects\.\[\r\n\]+Trace user is me me me\.\[\r\n\]+Trace notes: different note\.\[\r\n\]+Not looking at any trace frame\..*\r\n$gdb_prompt $" {
+ -re "Trace stopped by a tstop command \\(because I can\\)\..*Trace will stop if GDB disconnects\.\[\r\n\]+Trace user is me me me\.\[\r\n\]+Trace notes: different note\.\[\r\n\]+Not looking at any trace frame\..*\r\n$gdb_prompt $" {
pass "tstatus reports trace stop reason"
}
-re "Trace stopped by a tstop command\..*\r\n$gdb_prompt $" {
--
1.7.7.6
next prev parent reply other threads:[~2013-03-05 2:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-04 15:37 Yao Qi
2013-03-04 16:23 ` Joel Brobecker
2013-03-04 17:35 ` Tom Tromey
2013-03-05 2:24 ` Yao Qi [this message]
2013-03-05 19:09 ` Pedro Alves
2013-03-04 16:32 ` Pedro Alves
2013-03-05 2:39 ` Yao Qi
2013-03-05 19:02 ` tstatus.exp: use UNSUPPORTED for optional features that are not supported (was: Re: [PATCH] Fix a bug in tstatus.exp matching tstatus output) Pedro Alves
2013-03-06 1:14 ` tstatus.exp: use UNSUPPORTED for optional features that are not supported Yao Qi
2013-03-06 12:19 ` Pedro Alves
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=51355731.3090609@codesourcery.com \
--to=yao@codesourcery.com \
--cc=brobecker@adacore.com \
--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