Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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