[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [rtems-users] C++ Virtual Functions



"Smith, Gene" <Gene.Smith@siemens.com> writes:
> I am having some problems running code containing C++ virtual functions in
> rtems. When the code tries to branch to a virtual function address using
> "bctrl" instruction, the address (in ctr) is way out of range and results in
> a machine check exception.
> 
> Is there anything I need to do special in rtems for virtual functions to
> work? Is anyone using virtual functions, pure or impure, in rtems? I am
> still using rtems 4.6.1 and my ppc40x-derived bsp.

Besides what others have already suggested to check for, it could be the
case that you call a virtual member function of a static or global
object for which constructor hasn't been invoked (yet). In this case
virtual table pointer in the object isn't initialized. Global
constructors are invoked by special startup code so you need to check if
this code is linked in and executed. Check for .ctors section in the
executable as well.

-- 
Sergei.