error messages

error messages

Post by Jens Herd » Wed, 06 Sep 1995 04:00:00



Where can I find a description of all Inventor error messages?

For example I got "Inventor error in (internal) SoBase::destroy(): Got
an auditor of type 1". I know something with my reference counters is
wrong, but I would like to know which object. What is type 1?
--

Kind regards

Jens Herder
? ????

Computer Industry Laboratory              phone   +81-242-37-2579 (office)
THE UNIVERSITY OF AIZU                            +81-242-32-9118 (private)
Tsuruga, Ikki-machi, Aizu-Wakamatsu City  fax     +81-242-37-2745        

---- <A HREF="http://www-ci.u-aizu.ac.jp/">New Site of Discovery</A> -------- <A HREF="http://www.u-aizu.ac.jp/">to Advance Knowledge for Humanity</A> ----
2?????3? ?965-80 2????????? ?? ?2????1? 90

 
 
 

error messages

Post by Gavin Be » Wed, 06 Sep 1995 04:00:00




>Where can I find a description of all Inventor error messages?

There is no master list.  We try to make each error message as
descriptive as possible.  Unfortunately, the SoBase::destroy check is
done at a time when Inventor no longer has much information about the
object, so there's not a lot it can tell you:

Quote:>For example I got "Inventor error in (internal) SoBase::destroy(): Got
>an auditor of type 1". I know something with my reference counters is
>wrong, but I would like to know which object. What is type 1?

Auditor type 1 is a PARENT auditor (I figured that out by looking at
the order of the enums in /usr/include/Inventor/misc/SoNotification.h;
most of the people in the Inventor group probably wouldn't have known
to look there, either!).  This means that a node is being deleted
(unref'ed) while it is still a child of another node.

To debug this, I'd suggest you do something like:

-- set a break point in SoDebugError::handleError() in your favorite
de*

-- when you get there, EITHER:  go up in the call stack until you get
to the code that is doing the bad unref(), OR
go up a few levels in the call stack until you get
to a SoNode method.  The de* will tell you something like:
   SoNode::~SoNode(this=0x10ffefd0)
   Use that 'this' address to call:
     ccall SoDebug::write((struct SoNode *)0x10ffefd0)
   That will apply an SoWriteAction to the node, which may help you
figure out which node is causing the problem.

--

My home page:  http://www.veryComputer.com/
Inventor Info: http://www.veryComputer.com/
WebSpace Info: http://www.veryComputer.com/