[prev in list] [next in list] [prev in thread] [next in thread]
List: gdb-patches
Subject: [PATCH] Improve MI inferior output check / mi-console.exp
From: lgustavo () codesourcery ! com (Luis Machado)
Date: 2013-10-30 12:30:00
Message-ID: 5270FBD1.7040908 () codesourcery ! com
[Download RAW message or body]
On 10/29/2013 09:09 AM, Pedro Alves wrote:
> On 10/28/2013 08:43 PM, Luis Machado wrote:
>
> > *sigh*, that is true. I think fiddling with these checks may not be ideal.
> >
> > What about this simpler version that just checks for both patterns
> > without other changes?
>
> > 2013-10-28 Iain Sandoe <iain@codesourcery.com>
> > Luis Machado <lgustavo@codesourcery.com>
> >
> > gdb/testsuite
> > * gdb.mi/mi-console.exp: Check for an additional inferior
> > output pattern.
>
> I suggest:
>
> * gdb.mi/mi-console.exp: Check for semihosted inferior
> output pattern.
>
Done.
> >
> > diff --git a/gdb/testsuite/gdb.mi/mi-console.exp \
> > b/gdb/testsuite/gdb.mi/mi-console.exp index b7643e7..c9a1a84 100644
> > --- a/gdb/testsuite/gdb.mi/mi-console.exp
> > +++ b/gdb/testsuite/gdb.mi/mi-console.exp
> > @@ -36,11 +36,20 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" \
> > "${binfile}" executable {deb
> > mi_run_to_main
> >
> > +# The output we get from the target depends on how it is hosted.
> > +# If we are local, we just see the executable's output.
> > +# If we are remote (and the configuration supports semihosting),
> > +# we see the target responses encapsulated by gdb's annotation.
> > +# Therefore we consider two patterns here.
>
> Not only remote, but the sim, or any other semihosted configuration.
> I think it'd be good to make the comment and variable names reflect
> that, and be more precise, making it a easier for future
> maintainers. So:
>
> # The output we get from the target depends on how it is hosted. If
> # we are semihosted (e.g., the sim or a remote target that supports
> # the File I/O remote protocol extension), we see the target I/O
> # encapsulated in MI target output stream records. If debugging with
> # a native target, the inferior's I/O streams are connected directly
> # to a PTY we create for the inferior (notice separate-inferior-tty
> # above), and we just see the program's output unadorned. If
> # debugging with a remote target that doesn't support semihosting,
> # we'll see nothing.
>
> set semihosted_output "@\"H\"\r\n@\"e\"\r\n@\"l\"\r\n@\"l\"\r\n@\"o\"\r\n@\" \
> \"\r\n@\"\\\\\\\\\"\r\n@\"\\\\\"\"\r\n@\"!\"\r\n@\"\\\\r\"\r\n@\"\\\\n\"\r\n" set \
> output "Hello \\\\\"!\[\r\n\]+" set both_patterns "($semihosted_output|$output)"
>
>
> This is OK with that change, though I'd prefer if $semihosted_output
> was computed from $output...
>
The following patch accomplishes that and tweaks things a little further.
First, i removed the misleading test description. It does not seem to be
aligned with what the test does nowadays. It is not restricted to
remote/sim targets anymore.
I've put back the mi-support.exp bit since that is required for remote
targets, otherwise we will try to read from the spawn id.
I'm explicitly checking for "remote" and "extended-remote" gdb_protocol
values here since neither "isremote" nor "use_gdb_stub" seem to have a
consistent meaning. Extended-remote should be both "use_gdb_stub" and
"isremote", but it isn't.
Hopefully this version also addresses the gdb-simulator vs rsp-simulator
confusion.
I regression tested this with native gdb (full passes), native-gdbserver
(4 passes and 1 unsupported), native-extended-gdbserver (4 passes and 1
unsupported) and also in our semihosted-enabled target (full passes).
WDYT?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mi_console_v2.diff
Type: text/x-patch
Size: 4192 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20131030/5be83342/attachment.bin>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic