From: Jim Ingham <jingham@apple.com>
To: Eli Zaretskii <eliz@is.elta.co.il>
Cc: <gdb@sources.redhat.com>
Subject: Re: Questions about GDB-MI Interface`
Date: Fri, 26 Apr 2002 07:57:00 -0000 [thread overview]
Message-ID: <B8EEB885.97CE%jingham@apple.com> (raw)
In-Reply-To: <6480-Fri26Apr2002105439+0300-eliz@is.elta.co.il>
On 4/26/02 12:54 AM, "Eli Zaretskii" <eliz@is.elta.co.il> wrote:
>> Date: Thu, 25 Apr 2002 12:23:17 -0700
>> From: Jim Ingham <jingham@apple.com>
>>
>> So, we added an "-mi-interpreter-exec" command that runs commands as if it
>> were the console interpreter. The syntax is:
>>
>> mi-interpreter-exec console <command1> <command2> ...
>>
>> These will feed the commands one by one to the execute_command function, AND
>> switch the output printer to the CLI printer, so you see console style
>> output. Also, while the CLI command is running, it puts in place a series
>> of hooks that will report back interesting things to the GUI.
>
> Isn't it better to have the CLI-style output be followed by the
> MI-style output, with some clear separator between them? The front
> end could then filter the CLI output to the display, while keeping
> the MI output for itself, to sync itself with the debugger.
Yes, this is the way that we do it. After all, the intepreter-exec command
is an MI command, so I just accumulate the hook results in the result of the
MI command, and send them all when it is done. This works great in the
async case, because even if you start the inferior you get an immediate
"done" for the command, with all the hook results as well. I think this
will have to be worked on a bit in the synchronous case, so that you send
some out-of-band MI message. Though it has a few of its own problems, the
Async stuff makes this sort of thing MUCH easier!!
>
>>> One thing that I am still confused about, if CLI commands are not supposed
>>> to be used in MI mode and MI does not yet have the complete set of GDB
>>> functionality, how are we supposed to get the missing functionality? How
>>> do other frontends deal with this problem now?
>>
>> This is a theoretical "not supposed to be used" thing. When needed we grit
>> our teeth and call through. Actually, whenever our GUI guy ends up needing
>> a CLI command with no MI equivalent, he comes and bugs me, and I usually add
>> the MI version... So if you look in our MI code, you will see some more
>> functions that we have added, though there are still many more to go...
>
> Nevertheless, the CLI support is required, I think, because the user
> of the GUI should be able to type CLI commands directly. The GUI
> front end will never be as flexible as GDB command and scripting
> language, even if all the commands are supported in the MI.
>
--
++=++=++=++=++=++=++=++=++=++=++=++=++=++=++=++=++=++=++=
Jim Ingham jingham@apple.com
Developer Tools - gdb
next prev parent reply other threads:[~2002-04-26 14:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1019760653.9107.ezmlm@sources.redhat.com>
2002-04-25 12:24 ` Jim Ingham
2002-04-26 0:55 ` Eli Zaretskii
2002-04-26 5:52 ` Andrew Cagney
2002-04-26 7:57 ` Jim Ingham [this message]
2002-04-26 8:21 ` Andrew Cagney
2002-04-26 10:10 ` Jim Ingham
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=B8EEB885.97CE%jingham@apple.com \
--to=jingham@apple.com \
--cc=eliz@is.elta.co.il \
--cc=gdb@sources.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