yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #00764
Re: Incomprehensible crash
In case of crash always look for the following (or similar, if abort()
is called)
#6 <signal handler called>
then the strack below has what functions were called in what order.
Second thing is message printed right before the crash:
yade-trunk:
/home/vaclav/yade/build-trunk/include/yade-trunk/yade/lib-multimethods/DynLibDispatcher.hpp:447:
bool DynLibDispatcher<BaseClass, Executor, ResultType, TList,
autoSymmetry>::locateMultivirtualFunctor2D(int&, int&,
boost::shared_ptr<typename Loki::TL::TypeAtNonStrict<typename
Loki::TL::Append<Loki::NullType, T>::Result, 0u,
Loki::NullType>::Result>&, boost::shared_ptr<typename
Loki::TL::TypeAtNonStrict<typename Loki::TL::Append<Loki::NullType,
T>::Result, 1u, Loki::NullType>::Result>&) [with BaseClass =
Loki::Typelist<GeometricalModel, Loki::Typelist<InteractingGeometry,
Loki::NullType> >, Executor = InteractingGeometryEngineUnit, ResultType
= void, TList = Loki::Typelist<const
boost::shared_ptr<GeometricalModel>&,
Loki::Typelist<boost::shared_ptr<InteractingGeometry>&,
Loki::Typelist<const Se3r&, Loki::Typelist<const Body*, Loki::NullType>
> > >, bool autoSymmetry = true]: Assertion `index1 >= 0 && (unsigned
int)( index1 ) < callBacks.size() && index2 >= 0 && (unsigned int)(
index2 ) < callBacks[index1].size()' failed.
(well, informative, right? Basically, the metaengine doesn't have a
callback for that particular class, if I understand correctly. Anyway,
shouldn't it throw an informative exception instead of asserting and
failing? That makes me look at the MetaEngine in a closer way...:
Interesting is the generated .xml file at that place
(Preprocessor('MembraneTest').generate('/tmp/a.xml'))
<initializers _className_="InteractingGeometryMetaEngine" label=""
functorNames="[]">
<functorArguments size="0" />
</initializers>
No functores? Why is this line commented out?
//
interactingGeometryDispatcher->add("ef2_BshTube_BssSweptSphereLineSegment_makeBssSweptSphereLineSegment");
Re-enabling this line makes me run without crash :-)
PS. You really _want_ to use those ugly names of classes? OMG... at
least skip the _make part and write just _BssSweptSpheres..., no?
Follow ups
References