Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <ghost@cs.msu.su>
To: gdb@sources.redhat.com
Subject: MI Development
Date: Tue, 04 Sep 2007 13:40:00 -0000	[thread overview]
Message-ID: <200709041740.22271.ghost@cs.msu.su> (raw)

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


Hi,
it should come as no surprise that the MI interface, as currently 
implemented in gdb, is not ideal. From experience working on KDevelop,
I've created a list of issues with MI, which is attached to this email.

That's something I'm planning to work on during my "KDevelop time",
but it would be great to get some help:

	- If you think MI has some other import issues, let me know
	- If you, perhaps, would like to work on any of those issues,
	that will be even more appreciated -- just let me know so that
	we don't duplicate work.

- Volodya



[-- Attachment #2: MI Development.txt --]
[-- Type: text/plain, Size: 1716 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.

Pending breakpoints don't work
It is not possible to create a pending breakpoint using MI interfaces. Further, when a pending
breakpoint is resolved, the breakpoint number changes, and there's no MI notification for that. 
The second problem will be (accidentally) fixed by some upcoming CodeSourcery patches, but
the first one needs separate work.

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.


             reply	other threads:[~2007-09-04 13:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-04 13:40 Vladimir Prus [this message]
     [not found] ` <200709041628.15560.apoenitz@trolltech.com>
2007-09-04 15:06   ` Vladimir Prus
2007-09-05  5:31 ` Nick Roberts
2007-09-05  5:40   ` Vladimir Prus
2007-09-05  6:29     ` Nick Roberts
2007-09-05  6:33       ` Vladimir Prus
2007-09-05  6:43         ` Nick Roberts

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=200709041740.22271.ghost@cs.msu.su \
    --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