Bad unwind record ...
When running a c++ program I get the following error message at program exit:
Bad unwind record format value '51' at offset 0 in record 0x4000000000cc31ef
Aborted (core dumped)
What's wrong there ?
Kind regards,
Thomas
--
Thomas Hiller [email protected] COMPAQ Computer Corporation [email protected] Global SAP Solution Center Tel: +49 6227 / 7-45426 LinuxLab @ SAP, Walldorf Fax: +49 6227 / 7-43027
Bad unwind record format value '51' at offset 0 in record 0x4000000000cc31ef
Aborted (core dumped)
You probably have an inconsistent set of gcc/gas/libraries on your system.
There were a number of problems with the unwind sections created by gas that were fixed by David Mosberger as part of his kernel unwinding work. Some of the problems were endian related. These changes made the new unwind sections ABI incompatible with the old unwind sections. David wrote only gas changes. Since C++ EH uses the unwind sections, this required corresponding gcc changes that I wrote. Also, this requires recompiling all libraries on the system with the new compiler.
If you accidentally mix the new compiler with old libraries, or the old compiler with new libraries, then you will see the error above.
Are you perhaps using TurboLinux? I think TurboLinux applied the gas patches to their toolchain on their own initiative, but they didn't add the gcc changes, which means that kernel unwinding will work with the TurboLinux toolchain, but C++ EH won't.
Jim