Bug in GDB : Error in displaying member variable of virtual base class in member function of its derived class

Anil Paranjape AnilP1@KPITCummins.com
Mon Feb 16 07:19:00 GMT 2004


Hi,

I have found a bug in GDB. When I try to watch member variable of virtual base class in member 
function of its derived class, following error is displayed,

(gdb) p b1_public_Value
virtual baseclass botch

Same error is displayed for protected and private members of virtual base class.
Bug was found in GDB snapshot dated 31 Dec 2003 of version 6.0 for H8 as well as SH targets.

Please refer to following test case,
**********************************************************************************************

// Base Class
class BaseClass1
{
public:
    int b1_public_Value;
    BaseClass1() { b1_public_Value    = 10; }
    void b1_func(void);
};

// Virtual Inheritance
class VirtualInheritance:virtual public BaseClass1
{
public:
    int v_public_Value;
    VirtualInheritance() { v_public_Value    = 40; }
    void v_func(void);         // normal member function
};

void BaseClass1::b1_func(void) 
{ 
	b1_public_Value    = 100; 
}

void VirtualInheritance::v_func(void)
{
    b1_func();
    v_public_Value    = 400;
    // 1  : b1_public_Value    : 100   
    // 4  : v_public_Value     : 400   
}

int main()
{
    VirtualInheritance  oVirtualInheritance;
    oVirtualInheritance.v_func();   // Test of Virtual Inheritance  (VI)
    return 0;
}
**********************************************************************************************

Regards,
Anil Paranjpe



More information about the Gdb mailing list