This is the mail archive of the archer@sourceware.org mailing list for the Archer 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] | |
On Mon, 22 Dec 2008 23:38:41 +0100, Tom Tromey wrote:
> >>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:
>
> Jan> Minor point is even if GCC would provide the info I would prefer
> Jan> the naming `_vptr$CLASS' over `_vptr.CLASS' as currently it is
> Jan> not much intuitive:
>
> We could supply a convenience function in Python, rather than
> inventing a new syntax. What do you think?
The basic question is whether to display it the separate or combined form:
(separate)
(gdb) p var
$1 = {_vptr$base1 = {func1 = 0x400380 <base1::func1()>}, _vptr$base2 = {func2 = 0x400390 <base2::func2()>}, field = 0}
(gdb) ptype var
type = struct derived {
struct {
int (*func1)(void);
} _vptr$base1;
struct {
int (*func2)(void);
} _vptr$base2;
int field;
}
(combined)
(gdb) p var
$1 = {_vptr = {base1 = {func1 = 0x400380 <base1::func1()>}, base2 = {func2 = 0x400390 <base2::func2()>}}, field = 0}
(gdb) ptype var
type = struct derived {
struct {
struct {
int (*func1)(void);
} base1;
struct {
int (*func2)(void);
} base2;
} _vptr;
int field;
}
The current GCC DW_AT_name form `_vptr.CLASSNAME' IMO suggest to display the
combined form (which is not directly achievable in DWARF as DW_TAG_inheritance
would pick up `struct _vptr' only from the first inherited class).
My suggestion of `_vptr$CLASS' would require no GDB changes (after GCC PR
debug/11208) to get the separate printing form. With the goal of the
combined form sure the current DW_AT_name `_vptr.CLASS' is more appropriate.
Python pretty printer would also need to implement the right completer part.
Regards,
Jan
Attachment:
virtual.C
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |