From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Blandy To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA/c++] Fix printing classes with virtual base classes Date: Mon, 26 Nov 2001 20:38:00 -0000 Message-ID: References: <20011126201945.A27754@nevyn.them.org> X-SW-Source: 2001-11/msg00478.html Message-ID: <20011126203800.VwB6ducPsKFeisRLt-4eSWpmbqpoh1v0oKqGPojwFSs@z> I'm with you on VALUE_OFFSET and VALUE_EMBEDDED_OFFSET. I'm pretty sure VALUE_OFFSET can be eliminated from GDB entirely, with some minor changes to the representation of subvalues of registers and convenience variables. Can you explain exactly what TYPE_VPTR_FIELDNO means, and how it works in heavily derived classes? What I think you're basically doing there is taking the address of the field indicated by TYPE_VPTR_FIELDNO, casting that to a void *, and then casting that to the `struct gdb_gnu_v3_abi_vtable' type. I have this vague memory that maybe using TYPE_VPTR_FIELDNO correctly would fix that. I wonder if that dereferencing code could be simplified with a judicious use of `lookup_pointer_type (vtable_type)' and `value_deref'...