This is the mail archive of the
mailing list for the GDB project.
Re: C++ debugging progress
>>>>> "Daniel" == Daniel Jacobowitz <email@example.com> writes:
> On Wed, Nov 28, 2001 at 09:31:07AM +0000, Jason Merrill wrote:
>> So you're using the inheritance information in the RTTI rather than the debug
>> info? That seems unfortunate. I'm not sure why you would need to worry
>> about ordering; the debug info should tell you exactly where things are.
>> If it doesn't, it should probably be fixed.
> In that case, the debug info absolutely needs to be fixed.
> <1><22e>: Abbrev Number: 15 (DW_TAG_structure_type)
> DW_AT_sibling : <2df>
> DW_AT_name : Left
> DW_AT_byte_size : 12
> DW_AT_decl_file : 1
> DW_AT_decl_line : 2
> DW_AT_containing_type: <22e>
> <2><23f>: Abbrev Number: 22 (DW_TAG_inheritance)
> DW_AT_type : <56>
> DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst: 8; )
> DW_AT_virtuality : 1 (virtual)
> DW_AT_accessibility: 1 (public)
Yep. Since Base is a virtual base of Left, the DW_AT_data_member_location
here should be a complex expression telling the debugger to go through the
vtable. I'll get on it.
I'll also change the stabs output to give the offset within the vtable
rather than the offset of the base in a complete object; gdb will still
need to be clever enough to know what to do with it.