From: 'Daniel Jacobowitz' <drow@false.org>
To: Sascha <sascha@pasalacqua.de>
Cc: gdb@sourceware.org
Subject: Re: Interested in remote protocol improvements
Date: Fri, 04 Aug 2006 16:00:00 -0000 [thread overview]
Message-ID: <20060804160005.GA31681@nevyn.them.org> (raw)
In-Reply-To: <j3hctg.68s34t@pasalacqua.de>
On Fri, Aug 04, 2006 at 05:39:16PM +0200, Sascha wrote:
> > I rewrote a bunch of the native Windows support code after our last
> release.
> > I bet that would help you with your networking performance problems.
> > None of that code is on the branch; it's only available on the FSF
> > HEAD, which doesn't have the XML description stuff yet.
>
> > It might be a general Windows issue... but that would be pretty
> > disappointing. If it is, there's not much we can do about it :-(
> > You might want to try communicating with the stub over a pipe instead
> > of a TCP socket; that's what we've been doing recently here at
> > CodeSourcery.
>
> Somehow I feel that this is a Win32 issue, but I haven't found any
> information about this (Maybe you (or someone else) can run the "while++ <
> 10000" test on windows using mingw gdb and gdbserver to verify this? )
First I tried using mingw gdbserver and a stock Cygwin GDB:
(gdb) maint time 1
Command execution time: 0.000000
(gdb) set $i = 0
Command execution time: 0.000000
(gdb) while $i++ < 10000
>set $b = *(char *)$pc
>end
Command execution time: 5.006000
So, that's about 0.5ms. It's ten times worse than the 0.05ms I could
generate on GNU/Linux, but much better than you were seeing. This is a
Dell laptop from last year; it's got a 1.6GHz Pentium M (though I think
it's power-managed down to something slower right now).
I also tried a native mingw32 GDB built from HEAD and got 5.788000
seconds; about the same really.
> I already noticed that there is a pipe support implemented for gdb/mingw -
> is that what you are using ? Unfortunately there is no documentation. I had
Sure there is:
`target remote | COMMAND'
Run COMMAND in the background and communicate with it using a
pipe. The COMMAND is a shell command, to be parsed and expanded
by the system's command shell, `/bin/sh'; it should expect remote
protocol packets on its standard input, and send replies on its
standard output. You could use this to run a stand-alone simulator
that speaks the remote debugging protocol, to make net connections
using programs like `ssh', or for other similar tricks.
If COMMAND closes its standard output (perhaps by exiting), GDB
will try to send it a `SIGTERM' signal. (If the program has
already exited, this will have no effect.)
("Remote Debugging" chapter, under "Connecting").
> a look at the source and did a test but GDB wants to launch another
> application if I specify the "|" to use a pipe (target remote | something).
> My stub is already running and it would use the named pipe api. Does gdb
> support named pipes ?
GDB does not yet have any support for named pipes on Windows. This
could be added, I suppose; I don't need it myself, though.
> Alright. Good to know.
>
> Another question about the remote protocol... the error code numbers don't
> have any effect, do they ? If my stub responds with "E99" for example, how
> do I notice this (number) in GDB ? And even more important, how do I notice
> this using GDB/MI ?
In general, there is no way to do this today. I've spent some time
thinking about the general issue of communicating errors, but I
haven't got any plans on how to improve the situation. Someone
needs to come up with a solid design for this.
--
Daniel Jacobowitz
CodeSourcery
next prev parent reply other threads:[~2006-08-04 16:00 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-29 14:13 Daniel Jacobowitz
2006-07-30 10:05 ` AW: " Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
2006-07-30 10:05 ` Sascha
[not found] ` <20060729141300.B6A964B269@return.false.org>
2006-08-02 3:03 ` 'Daniel Jacobowitz'
2006-08-04 15:39 ` Sascha
2006-08-04 16:00 ` 'Daniel Jacobowitz' [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
2006-07-28 16:07 Sascha
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=20060804160005.GA31681@nevyn.them.org \
--to=drow@false.org \
--cc=gdb@sourceware.org \
--cc=sascha@pasalacqua.de \
/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