From: wolf Date: Thu, 11 May 2000 08:33:17 +0000 (+0000) Subject: Update on Subcriptor stuff. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87acf35349cc61b431c9cd547d618735273d4e33;p=dealii-svn.git Update on Subcriptor stuff. git-svn-id: https://svn.dealii.org/trunk@2836 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-6.data/results.html b/deal.II/doc/tutorial/chapter-2.step-by-step/step-6.data/results.html index eb0fcead04..b3a7bbf59b 100644 --- a/deal.II/doc/tutorial/chapter-2.step-by-step/step-6.data/results.html +++ b/deal.II/doc/tutorial/chapter-2.step-by-step/step-6.data/results.html @@ -178,3 +178,41 @@ to store which other object subscribed to it. However, by thinking a little bit about which objects use the one that is presently destructed, one usually quite quickly finds out where the problem is.

+ + +

+Versions after deal.II 3.0 give slightly better +information in that they are at least able to tell which object is +destructed. The output then looks like this: +

+

+--------------------------------------------------------
+An error occurred in line <20> of file  in function
+    Subscriptor::~Subscriptor()
+The violated condition was:
+    counter == 0
+The name and call sequence of the exception was:
+    InUse()
+Additional Information:
+Object of class t4FEQ21i2 is still used by 1 other objects.
+--------------------------------------------------------
+
+

+ +

+This tells us, that the object that is presently deleted is of type +t4FEQ21i2. Of course, this is not the actual name of the +class, but what the C++ run time library returns as name; it is in +fact the mangled name of the class, and you can get back the +true class name by running the program c++filt on that +name, which then returns FEQ2<2>. (The mangled name +can be read without c++filt in the following way: the +first letter tells us that the class name is a template, the second +that the name of the class name without template arguments is four +characters; we then already have FEQ2<...>. After +the class name, the next character tells us that the class has one +template parameter, the ``i'' indicates that it is of type ``int'' and +finally that it has the value ``2''. Thus, we arrive at +FEQ2<2>.) +

+