Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <ghost@cs.msu.su>
To: gdb@sources.redhat.com
Subject: Re: New MI maintainer
Date: Fri, 22 Feb 2008 08:43:00 -0000	[thread overview]
Message-ID: <fplqu3$7bs$1@ger.gmane.org> (raw)
In-Reply-To: <20080221192124.GJ31574@brasko.net>

[-- Attachment #1: Type: text/plain, Size: 458 bytes --]

Bob Rossi wrote:

> On Tue, Feb 19, 2008 at 02:12:22PM -0500, Daniel Jacobowitz wrote:
>> I'm glad to announce that GDB finally has an official MI maintainer
>> again: Vladimir Prus.
> 
> Congratulations Vladmir.

Thanks.

> Could you tell us if you have any goals as the official MI maintainer?

Attached is my current list of MI problems that I find most important
to resolve. The item most close to completion is custom display of
varobjs.

- Volodya





[-- Attachment #2: MI Development(2).txt --]
[-- Type: text/plain, Size: 2283 bytes --]

 

MI Development

The GDB/MI interface as it is today has the following important problems.

Variable objects and RTTI
For C++, variable objects are not able to look at the real type of the object.
Only the static type is shown. We should be able to implement display of
real type, using Apple's branch as reference.


CLI commands bypass MI
When a CLI command is issued, we don't see "^running". As result, frontend can easily think 
that gdb is waiting for commands while inferior is running.

Variable objects and scopes

Variable objects don't care much about C++ scopes. For example, it's not possible to
create a variable object for a given expression in particular scope, which makes it impossible
to accurately implement variable tooltips. Also, it's not possible to list all local variables in the
entire function, which requires extraordinary effort to display all local variables as the enter
scope and leave scope.


Change notification style
Generally, all commands that a frontend might want to issue at each step -- list of breakpoints,
list of threads, list frames, list of local variables -- should have a notification to match, which is
emitted whenever gdb thinks the result of those command can possibly change. Wit this,
the frontend won't have to automatically issue any commands after step -- if anything changes,
gdb will report that itself.


Static fields

The way -var-list-children displays always displays static field is a bit annoying, it can also
result in nice never ending trees, like in https://bugs.eclipse.org/bugs/show_bug.cgi?id=136627 
Need to make it customizable.


Custom display
For many kinds of objects there's some more reasonable representation than pure varobj tree.
For example -- for QString we need the real string. For vector we need content of the vector
to be the children.  This requires some scripting level, that can customize creation of children
of variable object and display as string.  In order for -var-update to work, that customization
level should actually be able to construct arbitrary value and use that value for a variable object.
For -var-update together with vector, we should be able to check if the vector size/storage
has changed. I'm not sure how we'd create new children if a vector is resized.



      reply	other threads:[~2008-02-22  6:44 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-19 19:37 Daniel Jacobowitz
2008-02-19 20:29 ` Nick Roberts
2008-02-19 20:46   ` Daniel Jacobowitz
2008-02-19 20:47     ` Nick Roberts
2008-02-21  1:43       ` Daniel Jacobowitz
2008-02-20  3:12     ` Bob Rossi
2008-02-20  8:59       ` Richard Stallman
2008-02-21 21:37         ` Bob Rossi
2008-02-20 19:05   ` Richard Stallman
2008-02-20 20:00     ` Nick Roberts
2008-02-20 20:57       ` Eli Zaretskii
2008-02-20 21:20         ` Nick Roberts
2008-02-20 21:50           ` Joel Brobecker
2008-02-20 23:25           ` Frank Ch. Eigler
2008-02-22  3:34             ` Nick Roberts
2008-02-22 17:37               ` Thomas Dineen
2008-02-22 22:09                 ` Eli Zaretskii
2008-02-22 22:14                   ` Christopher Faylor
2008-02-22 22:23                     ` Bob Rossi
2008-02-23  0:01                       ` Dave Korn
2008-02-23  0:58                         ` Alpár Jüttner
2008-02-23  8:16                           ` Jim Blandy
2008-02-23 11:13                           ` Nick Roberts
2008-02-23 11:15                           ` Eli Zaretskii
2008-02-23 12:34                       ` Eli Zaretskii
2008-02-22 23:36                 ` Jim Blandy
2008-02-21 19:25   ` Stan Shebs
2008-02-22  4:08     ` Nick Roberts
2008-02-22  2:52 ` Bob Rossi
2008-02-22  8:43   ` Vladimir Prus [this message]

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='fplqu3$7bs$1@ger.gmane.org' \
    --to=ghost@cs.msu.su \
    --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