From: Andrew Burgess <andrew.burgess@embecosm.com>
To: Pedro Alves <palves@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 1/3] gdb/testsuite: Fix broken regexp in gdbstub case
Date: Thu, 03 May 2018 19:41:00 -0000 [thread overview]
Message-ID: <20180503194115.GJ3375@embecosm.com> (raw)
In-Reply-To: <092e44fd-096b-e96b-542b-a8eb4c5c5f1d@redhat.com>
* Pedro Alves <palves@redhat.com> [2018-04-13 13:12:30 +0100]:
> On 04/09/2018 04:15 PM, Andrew Burgess wrote:
> > When $use_gdb_stub is true then, when we start an MI target there's a
> > regexp to match GDB's startup pattern. Unfortunately the pattern is
> > broken, and we're also missing a timeout case in the match list (which
> > would have helped point out that the regexp was broken).
>
> That seems to have been added by:
> https://sourceware.org/ml/gdb-patches/2015-12/msg00357.html
>
> curious how it seems to have worked back then. I wonder whether
> it was GDB's CLI-in-MI output that changed meanwhile?
>
> I'd have appreciated a bit more detail on what is actually broken in
> the pattern. The git log above gives no clue, and the diff is not
> exactly easy to read. I trust that it's now correct though. Thus, OK.
I aim to please, so here's a revised commit message detailing what
changed. The actual patch content hasn't changed. I'll wait a few
days, but if I don't hear anything I'll assume your approval above
still stands and apply the patch.
Thanks,
Andrew
---
gdb/testsuite: Fix broken regexp in gdbstub case
When $use_gdb_stub is true then, when we start an MI target there's a
regexp to match GDB's startup pattern. Unfortunately the pattern is
broken, and we're also missing a timeout case in the match list (which
would have helped point out that the regexp was broken).
The changes to the regexp are:
1. Remove '${run_match}' prefix, the issued command doesn't include
'${run_prefix}' so expecting '${run_match}' is wrong.
2. Replaced '\\n' with '\\\\n' in order to match literal '\n' in
GDBs output (that is, match a backslash followed by 'n', not a
newline character).
3. Replaced a '.' (matching any character) with '\.' to match a '.'
and moved the '\.' into the correct place in the regexp.
4. Replaced '\r\n' with '[\r\n]+' to match the end of a line. This
change isn't esential, but matches the other end of line patterns
within this regexp.
Here's an example of the output that the regexp should match taken
from a testfile log, the first line is the command sent to GDB, and
the remaining lines are the response from GDB:
jump *_start
&"jump *_start\n"
~"Continuing at 0x10074.\n"
^running
*running,thread-id="all"
(gdb)
gdb/testsuite/ChangeLog:
* lib/mi-support.exp (mi_run_cmd_full): Fix regexp and add a
timeout.
---
gdb/testsuite/ChangeLog | 5 +++++
gdb/testsuite/lib/mi-support.exp | 6 +++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index 2846da74e47..851e490f4de 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -979,7 +979,11 @@ proc mi_run_cmd_full {use_mi_command args} {
send_gdb "jump *$start\n"
warning "Using CLI jump command, expect run-to-main FAIL"
gdb_expect {
- -re "${run_match}&\"jump \\*${start}\\n\"\[\r\n\]+~\"Continuing at 0x\[0-9A-Fa-f\]+\\n.\"\[\r\n\]+\^running\[\r\n\]+\\*running,thread-id=\"\[^\"\]+\"\r\n${mi_gdb_prompt}" {}
+ -re "&\"jump \\*${start}\\\\n\"\[\r\n\]+~\"Continuing at 0x\[0-9A-Fa-f\]+\.\\\\n\"\[\r\n\]+\\^running\[\r\n\]+\\*running,thread-id=\"\[^\"\]+\"\[\r\n\]+${mi_gdb_prompt}" {}
+ timeout {
+ perror "Unable to start target"
+ return -1
+ }
}
return 0
}
--
2.14.3
next prev parent reply other threads:[~2018-05-03 19:41 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-09 15:15 [PATCH 0/3] Small testsuite updates Andrew Burgess
2018-04-09 15:15 ` [PATCH 2/3] gdb/testsuite: Filter out some registers for riscv Andrew Burgess
2018-04-09 21:28 ` Palmer Dabbelt
2018-04-09 22:26 ` Andrew Burgess
2018-04-10 20:25 ` Palmer Dabbelt
2018-04-13 12:55 ` Pedro Alves
2018-04-09 15:15 ` [PATCH 1/3] gdb/testsuite: Fix broken regexp in gdbstub case Andrew Burgess
2018-04-13 12:12 ` Pedro Alves
2018-05-03 19:41 ` Andrew Burgess [this message]
2018-05-04 9:18 ` Pedro Alves
2018-04-09 15:15 ` [PATCH 3/3] gdb/testsuite: Handle targets with lots of registers Andrew Burgess
2018-04-12 23:40 ` Maciej W. Rozycki
2018-04-13 13:10 ` Pedro Alves
2018-04-13 13:57 ` Maciej W. Rozycki
2018-05-04 12:01 ` Andrew Burgess
2018-05-04 12:47 ` 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=20180503194115.GJ3375@embecosm.com \
--to=andrew.burgess@embecosm.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
/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