From d6dbb822205f48adcbca19b5cadab9c498f81e04 Mon Sep 17 00:00:00 2001 From: David Wells Date: Sun, 17 Jul 2016 17:18:55 -0400 Subject: [PATCH] Update the exception discussion in step-6. --- examples/step-6/doc/results.dox | 55 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/examples/step-6/doc/results.dox b/examples/step-6/doc/results.dox index 336d403acf..0e154545a9 100644 --- a/examples/step-6/doc/results.dox +++ b/examples/step-6/doc/results.dox @@ -109,51 +109,48 @@ from the optimal square. - For completeness, we show what happens if the code we commented about in the destructor of the Step6 class is omitted from this example. @code -------------------------------------------------------- -An error occurred in line <79> of file in function - virtual Subscriptor::~Subscriptor() +An error occurred in line <128> of file in function + void dealii::Subscriptor::check_no_subscribers() const The violated condition was: counter == 0 The name and call sequence of the exception was: - ExcInUse(counter, object_info->name(), infostring) + ExcInUse (counter, object_info->name(), infostring) Additional Information: -Object of class 4FE_QILi2EE is still used by 1 other objects. - from Subscriber 10DoFHandlerILi2EE +Object of class N6dealii4FE_QILi2ELi2EEE is still used by 1 other objects. + +(Additional information: ) + +See the entry in the Frequently Asked Questions of deal.II (linked to from +http://www.dealii.org/) for a lot more information on what this error means and +how to fix programs in which it happens. Stacktrace: ----------- -#0 /u/bangerth/p/deal.II/1/deal.II/lib/libbase.g.so: Subscriptor::~Subscriptor() -#1 /u/bangerth/p/deal.II/1/deal.II/lib/libdeal_II_2d.g.so: FiniteElement<2>::~FiniteElement() -#2 ./\step-6: FE_Poly, 2>::~FE_Poly() -#3 ./\step-6: FE_Q<2>::~FE_Q() -#4 ./\step-6: Step6<2>::~Step6() -#5 ./\step-6: main +#0 /lib/libdeal_II.g.so: dealii::Subscriptor::check_no_subscribers() const +#1 /lib/libdeal_II.g.so: dealii::Subscriptor::~Subscriptor() +#2 /lib/libdeal_II.g.so: dealii::FiniteElement<2, 2>::~FiniteElement() +#3 ./step-6: Step6<2>::~Step6() +#4 ./step-6: main -------------------------------------------------------- -make: *** [run] Aborted @endcode - - -From the above error message, we conclude that an object of type -10DoFHandlerILi2EE is still using the object of type -4FE_QILi2EE. These are of course "mangled" names for -DoFHandler and FE_Q. The mangling works as -follows: the first number indicates the number of characters of the -template class, i.e. 10 for DoFHandler and 4 -for FE_Q; the rest of the text is then template -arguments. From this we can already glean a little bit who's the -culprit here, and who the victim: -The one object that still uses the finite element is the -dof_handler object. - - +From the above error message, we conclude that something is still using an +object with type N6dealii4FE_QILi2EE. This is of course the "mangled" name for +FE_Q. The mangling works as follows: the N6 indicates +a namespace with six characters (i.e., dealii) and the +4 indicates the number of characters of the template class (i.e., +FE_Q). + +The rest of the text is then template arguments. From this we can already glean +a little bit who's the culprit here, and who the victim: The one object that +still uses the finite element is the dof_handler object. The stacktrace gives an indication of where the problem happened. We see that the exception was triggered in the -- 2.39.5