Bug #799
Error handler produces useless output - sometimes
100%
Description
Sometimes error handler produces an error message like "st9exception" instead of proper error message. It seems to be compiler dependent.
I think it's something horrid like the symbol for Squeal is different in e.g. _MapCppSimulation.so and libMausCpp.so - some compiler versions fail to resolve them as the same object and so they ignore the Squeal in the catch(). Instead they see the base class (std::exception) and catch that. Then the loop entered is CppErrorHandler::HandleStdExc
The other thing I notice is that the call signature for the std::exception stuff in CppErrorHandler is for a reference to std::exception or a copy of Squeal. Not sure if that can have an effect. Evil thing is that this is compiler dependent... so first need to replicate the bug.
Updated by Karadzhov, Yordan about 12 years ago
Yordan - gcc version 4.6.1 20110908 (Red Hat 4.6.1-9) (GCC)
Updated by Rogers, Chris about 12 years ago
Fix is to pass-by-reference to catch - then at least the what() of the child class is called by the error handler, so will give a sensible error message.
Updated by Rogers, Chris about 12 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Updated by Rogers, Chris about 12 years ago
- Target version changed from Future MAUS release to MAUS-v0.1.0