This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug mi/13393] There is no way to access runtime type of C++variable via MI (using RTTI)


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]