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

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

Smith, Gene wrote:
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.

Yes all the time.

A simple check of your application's ELF image is to:

 $ powerpc-rtems-nm --demangle myapp.elf | grep vtable

(I assume the tools are powerpc-rtems-*)

You should be able to find the address of the table in question and be able to make sure it is ok when the application is loaded.

Each object gets a pointer to its vtable so an overwrite of an object can result in the vtable pointer becoming corrupt.

-- Chris Johns