public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "xgsa at yandex dot ru" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug mi/13393] There is no way to access runtime type of C++ variable via MI (using RTTI)
Date: Mon, 28 Nov 2011 17:14:00 -0000	[thread overview]
Message-ID: <bug-13393-4717-GacSVBfkTv@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-13393-4717@http.sourceware.org/bugzilla/>

http://sourceware.org/bugzilla/show_bug.cgi?id=13393

Anton <xgsa at yandex dot ru> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Attachment #6047|0                           |1
        is obsolete|                            |

--- Comment #12 from Anton <xgsa at yandex dot ru> 2011-11-28 17:13:45 UTC ---
Created attachment 6076
  --> http://sourceware.org/bugzilla/attachment.cgi?id=6076
Proposed fixture (see details in comment)

Ok, finally I have researched this problem more carefully and I am ready to
propose a new patch. However there are a few notes that I want to share:
- currently gdb loses cv-qualifiers after RTTI type access. The simplest way to
check it - make a print command on any "const Base*" value. It will be
"Derived*" if "set print object" is on (by the way, Qt Creator loses it too).
This patch fixes this problem for gdb MI&CLI (and maybe for Qt Creator too - a
didn't check it)
- whatis command does not work for C++ references. It prints an error instead
of reference type. The proposed patch fixes this problem for gdb MI&CLI too (by
the way, Qt Creator does not show a real type for references too, but I think
this patch will not help it).
- indirect pointers (I mean pointer to pointer or reference to pointer and so
on) do not have a real type in whatis/print commands. The proposed patch does
not fix this problem because there is another problem in gdb which does not
allow to cast pointer to reference to pointer ("T*" => "T*&"). If it will be
fixed it is quite easy to provide support of indirect references too (a few
changes in value_rtti_target_type() should be enough).
- the last unresolved problem is type update when value changed. I am not sure
about how it should be done. Should we just set "type_changed" & "new_type"
properties in the result of -var-update command? If so I think not all
frontends will support it (at least Eclipse will not - I have checked it). Or
maybe we should create dynamic varobj some how? Can somebody advice me
something about it?

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


  parent reply	other threads:[~2011-11-28 17:14 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-08  8:31 [Bug mi/13393] New: " xgsa at yandex dot ru
2011-11-08 11:46 ` [Bug mi/13393] " xgsa at yandex dot ru
2011-11-08 16:42 ` tromey at redhat dot com
2011-11-08 16:56 ` andre.poenitz at nokia dot com
2011-11-08 21:38 ` xgsa at yandex dot ru
2011-11-09  7:17 ` andre.poenitz at nokia dot com
2011-11-09 11:36 ` xgsa at yandex dot ru
2011-11-09 13:19 ` andre.poenitz at nokia dot com
2011-11-09 15:26 ` tromey at redhat dot com
2011-11-10  9:10 ` xgsa at yandex dot ru
2011-11-10  9:12 ` xgsa at yandex dot ru
2011-11-10 21:06 ` tromey at redhat dot com
2011-11-11 20:14 ` xgsa at yandex dot ru
2011-11-28 17:14 ` xgsa at yandex dot ru [this message]
2011-11-28 17:17 ` xgsa at yandex dot ru
2011-11-28 17:33 ` andre.poenitz at nokia dot com
2011-11-28 17:56 ` xgsa at yandex dot ru
2011-12-02  9:30 ` xgsa at yandex dot ru
2011-12-02 17:17 ` xgsa at yandex dot ru
2011-12-02 19:01 ` tromey at redhat dot com
2011-12-02 19:04 ` tromey at redhat dot com
2011-12-16  8:08 ` xgsa at yandex dot ru
2011-12-16 14:49 ` tromey at redhat dot com
2012-04-14 12:19 ` cvs-commit at gcc dot gnu.org
2012-04-14 12:24 ` xgsa at yandex dot ru

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=bug-13393-4717-GacSVBfkTv@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).