SoDebugError(3)

πŸ“¦ version 2.5.0, in fedora 43, fedora 44

πŸ¦‹ SoDebugError(3) β€” Library Functions Manual πŸ¦‹

✨ NAME ✨

  • SoDebugError β€” The SoDebugError class is the internal debugging message passing mechanism.

πŸ’– SYNOPSIS πŸ’–

#include <Inventor/errors/SoDebugError.h>

Inherits SoError.

🌸 Public Types 🌸

  • enum Severity { ERROR, WARNING, INFO }

πŸ’… Public Member Functions πŸ’…

  • virtual SoType getTypeId (void) const
  • SoDebugError::Severity getSeverity (void) const

🌺 Public Member Functions inherited from SoError 🌺

  • virtual ~SoError ()
  • const SbString & getDebugString (void) const
  • SbBool isOfType (const SoType type) const

🌈 Static Public Member Functions 🌈

  • static void setHandlerCallback (SoErrorCB *const function, void *const data)
  • static SoErrorCB * getHandlerCallback (void)
  • static void * getHandlerData (void)
  • static SoType getClassTypeId (void)
  • static void post (const char *const source, const char *const format,...)
  • static void postWarning (const char *const source, const char *const format,...)
  • static void postInfo (const char *const source, const char *const format,...)
  • static void initClass (void)

🧚 Static Public Member Functions inherited from SoError 🧚

  • static void setHandlerCallback (SoErrorCB *const func, void *const data)
  • static SoErrorCB * getHandlerCallback (void)
  • static void * getHandlerData (void)
  • static SoType getClassTypeId (void)
  • static void post (const char *const format,...)
  • static SbString getString (const SoNode *const node)
  • static SbString getString (const SoPath *const path)
  • static SbString getString (const SoEngine *const engine)
  • static void initClass (void)
  • static void initClasses (void)

πŸŽ€ Protected Member Functions πŸŽ€

  • virtual SoErrorCBPtr getHandler (void *&data) const

πŸ’œ Protected Member Functions inherited from SoError πŸ’œ

  • void setDebugString (const char *const str)
  • void appendToDebugString (const char *const str)
  • void handleError (void)

⭐ Additional Inherited Members ⭐

🌟 Static Protected Member Functions inherited from SoError 🌟

  • static void defaultHandlerCB (const SoError *error, void *userdata)

πŸ“– Detailed Description πŸ“–

okay so bestie, the SoDebugError class is literally the internal debugging message passing mechanism. no cap. This class basically serves two purposes:

  1. It is the message interface through which error and warning conditions are passed to the programmer which is using the Coin library API for building applications. These messages are generated when API methods are used in an incorrect manner, or if actions on the library has caused it to enter an inconsistent state. Coin programmers should then quickly be able to trace down errors in their application code.

For this service to be available, the Coin library must be compiled with debugging information. For release builds, most of this "programmer's safety net" is removed to gain maximum speed and to use minimum space (build the smallest possible library).

  1. Coin application programmers can call the SoDebugError methods within their own code as a convenient way of debugging application code, replacing the usual cascades of fprintf() calls.

Coin supports an environment variable to set conditional breakpoints. The COIN_DEBUG_BREAK environment variable can be set to any number of functions in the form of a list separated by commas or spaces. The functionnames must be given as "classname::functioname" (ie without return type, parenthesis or argument types or names). If a debug message is posted from one of those functions, your program will be stopped (using assert(0)).

This can be useful if you want to get core-dumps or enter a debugger whenever for instance a warning or an error is posted from some function (e.g. "SbVec3f::normalize"). This feature is only enabled in the debug version of Coin.

πŸ”₯ Member Enumeration Documentation πŸ”₯

πŸ“ enum SoDebugError::Severity πŸ“

Specifies the available severity levels of the debug messages.

πŸ’€ Member Function Documentation πŸ’€

🌸 SoType SoDebugError::getTypeId (void ) const [virtual] 🌸

This method returns the SoType of a particular object instance.

See also: getClassTypeId()

Reimplemented from SoError.

πŸ¦‹ SoDebugError::Severity SoDebugError::getSeverity (void ) const πŸ¦‹

Returns severity level of current message.

You can use this to filter out debug messages and only let warnings and/or errors pass through to the end-user if you have set your own handler callback.

See also: setHandlerCallback()

πŸ’₯ void SoDebugError::post (const char *const source, const char *const format, ...) [static] πŸ’₯

This method posts a message with severity level "ERROR". source should be the name of the calling function.

Referenced by SoNodeKitListPart::addChild(), SoNodeKitListPart::addChildType(), SoNodekitCatalog::addListItemType(), SoPath::append(), SoPath::append(), SoPath::append(), SoBase::assertAlive(), SoInput::checkHeader(), SoAudioDevice::cleanup(), SoVRMLIndexedShape::computeBBox(), SoPath::copy(), SoType::createType(), SoMFString::deleteText(), SoMField::deleteValues(), SbDPMatrix::det3(), SbMatrix::det3(), SoField::disconnect(), SoGeoCoordinate::doAction(), SoSwitch::doAction(), SoVRMLSwitch::doAction(), SoInput::findFile(), SoType::fromName(), SoClipPlaneManip::getDragger(), SoDirectionalLightManip::getDragger(), SoPointLightManip::getDragger(), SoSpotLightManip::getDragger(), SoTransformManip::getDragger(), SoMFEnum::getEnum(), SoSFEnum::getEnum(), SoDB::getHeaderString(), SoPath::getIndex(), SoPath::getIndexFromTail(), SoPath::getNode(), SoPath::getNodeFromTail(), SoGeometryShader::GLRender(), SoGroup::GLRender(), SoImage::GLRender(), SoPointLight::GLRender(), SoSpotLight::GLRender(), SoVRMLPointLight::GLRender(), SoVRMLSpotLight::GLRender(), SoSeparator::GLRenderBelowPath(), SoVRMLBillboard::GLRenderBelowPath(), SoVRMLGroup::GLRenderBelowPath(), SoVRMLLOD::GLRenderBelowPath(), SoNode::GLRenderS(), SoGroup::insertChild(), SoNodeKitListPart::insertChild(), SoMField::insertSpace(), SbDPMatrix::operator[](), SbMatrix::operator[](), SbTime::parsedate(), SoSceneManager::processEvent(), SbPlaneProjector::project(), SoInteractionKit::readDefaultParts(), SbImage::readFile(), SoBase::ref(), SoCallbackList::removeCallback(), SoGroup::removeChild(), SoGroup::removeChild(), SoPath::removeIndex(), SoChildList::removePathAuditor(), SoGroup::replaceChild(), SoNodeKitListPart::replaceChild(), SoNodeKitListPart::replaceChild(), SoClipPlaneManip::replaceNode(), SoDirectionalLightManip::replaceNode(), SoPointLightManip::replaceNode(), SoSpotLightManip::replaceNode(), SoTransformManip::replaceNode(), SoMFEnum::set1Value(), SoNodeKitListPart::setContainerType(), SbVec2i32::setValue(), SbVec2i32::setValue(), SbVec2s::setValue(), SbVec2s::setValue(), SbVec3i32::setValue(), SbVec3i32::setValue(), SbVec3s::setValue(), SbVec3s::setValue(), SbVec3s::setValue(), SoMFEnum::setValue(), SoSFEnum::setValue(), SoConcatenate::SoConcatenate(), SoGate::SoGate(), SoSelectOne::SoSelectOne(), SoDirectionalLightManip::valueChangedCB(), and SoSpotLightManip::valueChangedCB().

πŸŽ€ void SoDebugError::postWarning (const char *const source, const char *const format, ...) [static] πŸŽ€

This method posts a message with severity level "WARNING". source should be the name of the calling function.

okay bestie we were literally in the middle of a Referenced by list and I am NOT about to leave you hanging on it πŸ’€βœ¨ here's the rest of it, every single one, no cap:

SoEngineOutput::addConnection(), SoDB::addConverter(), SoCone::addPart(),
SoCylinder::addPart(), SoAction::apply(), SoAction::apply(),
SoNodeSensor::attach(), SoVRMLSound::audioRender(),
SoGLRenderAction::beginTraversal(), SbSphere::circumscribe(),
SoRayPickAction::computeWorldSpaceRay(), SoField::connectFrom(),
SoField::connectFrom(), SoInteractionKit::connectSeparatorFields(),
SoDB::createGlobalField(), SoType::createInstance(),
SoBaseKit::createPathToAnyPart(), SoDB::createRoute(), SoMaterial::doAction(),
SoTransformManip::doAction(), SoVRMLMaterial::doAction(),
SoTrackballDragger::drag(), SoTrackballDragger::dragStart(),
SoDB::enableRealTimeSensor(), SbDPMatrix::equals(), SbMatrix::equals(),
SbVec2d::equals(), SbVec2f::equals(), SbVec3d::equals(), SbVec3f::equals(),
SbVec4d::equals(), SbVec4f::equals(), SbBox2d::extendBy(),
SbBox2f::extendBy(), SbBox2i32::extendBy(), SbBox2s::extendBy(),
SbBox3d::extendBy(), SbBox3f::extendBy(), SbBox3s::extendBy(),
SbXfBox3d::extendBy(), SbXfBox3d::extendBy(), SbXfBox3f::extendBy(),
SbXfBox3f::extendBy(), SoGetBoundingBoxAction::extendBy(),
SoGetBoundingBoxAction::extendBy(), SbTime::format(), SoType::fromName(),
SoFaceSet::generateDefaultNormals(), SoAsciiText::generatePrimitives(),
SoVRMLElevationGrid::generatePrimitives(), SoVRMLText::generatePrimitives(),
SoBaseKit::getAnyPart(), SbBox2d::getAspectRatio(),
SbBox2f::getAspectRatio(), SbBox2s::getAspectRatio(), SbBox3f::getCenter(),
SbLine::getClosestPoint(), SbLine::getClosestPoints(),
SoEngineOutput::getContainer(), SoVRMLSound::getDopplerFactor(),
SoVRMLSound::getDopplerVelocity(), SoFontStyle::getFontName(),
SbTime::getMsecValue(), SoEngineOutput::getNodeContainer(),
SoBaseKit::getPartString(), SbVec4d::getReal(), SbVec4f::getReal(),
SbSpherePlaneProjector::getRotation(), SbBox2d::getSize(),
SbBox2f::getSize(), SbBox2s::getSize(), SbBox3f::getSize(),
SbBox3s::getSize(), SbBox3d::getSpan(), SbBox3f::getSpan(),
SbBox3i32::getSpan(), SoSFImage::getSubTexture(), SoPath::getTail(),
SoLinearProfile::getTrimCurve(), SoNurbsProfile::getTrimCurve(),
SoLinearProfile::getVertices(),
SoOffscreenRenderer::getWriteFiletypeInfo(), SoAsciiText::GLRender(),
SoBumpMap::GLRender(), SoDirectionalLight::GLRender(), SoFaceSet::GLRender(),
SoMarkerSet::GLRender(), SoQuadMesh::GLRender(), SoSceneTexture2::GLRender(),
SoText3::GLRender(), SoTexture2::GLRender(), SoTexture3::GLRender(),
SoTextureCombine::GLRender(), SoTextureCubeMap::GLRender(),
SoTextureUnit::GLRender(), SoVRMLDirectionalLight::GLRender(),
SoVRMLElevationGrid::GLRender(), SoVRMLText::GLRender(),
SoEventCallback::grabEvents(), SoEventCallback::handleEvent(),
SoSFImage::hasTransparency(), SoOutput::indent(), SoAudioDevice::init(),
SoDB::init(), SbCylinder::intersect(), SbPlane::intersect(),
SbSphere::intersect(), SbXfBox3d::intersect(), SbXfBox3f::intersect(),
SbDPMatrix::inverse(), SbMatrix::inverse(), SbRotation::inverse(),
SbRotation::invert(), SoType::isDerivedFrom(), SoEventCallback::isHandled(),
SoTransformerManip::isLocateHighlighting(), SoDB::isValidHeader(),
SbVec2d::normalize(), SbVec2f::normalize(), SbVec3d::normalize(),
SbVec3f::normalize(), SbVec4d::normalize(), SbVec4f::normalize(),
SoOutput::openFile(), SbTime::operator%(), SbTime::operator/(),
SbVec2d::operator/, SbVec2f::operator/, SbVec2s::operator/,
SbVec2s::operator/, SbVec3d::operator/, SbVec3f::operator/,
SbVec3s::operator/, SbVec3s::operator/, SbVec4d::operator/,
SbVec4f::operator/, SbTime::operator/=(), SbVec2d::operator/=(),
SbVec2f::operator/=(), SbVec2s::operator/=(), SbVec2s::operator/=(),
SbVec3d::operator/=(), SbVec3f::operator/=(), SbVec3s::operator/=(),
SbVec3s::operator/=(), SbVec4d::operator/=(), SbVec4f::operator/=(),
SbDPMatrix::operator[](), SbMatrix::operator[](), SbVec2d::operator[](),
SbVec2d::operator[](), SbVec2f::operator[](), SbVec2f::operator[](),
SbVec2s::operator[](), SbVec2s::operator[](), SbVec4d::operator[](),
SbVec4d::operator[](), SbVec4f::operator[](), SbVec4f::operator[](),
SbTime::parsedate(), SoTransform::pointAt(),
SoSensorManager::processImmediateQueue(),
SbCylinderPlaneProjector::project(), SbCylinderSectionProjector::project(),
SbCylinderSheetProjector::project(), SbSpherePlaneProjector::project(),
SbSphereSectionProjector::project(), SbSphereSheetProjector::project(),
SoIndexedNurbsCurve::rayPick(), SoIndexedNurbsSurface::rayPick(),
SoNurbsCurve::rayPick(), SoNurbsSurface::rayPick(), SoField::read(),
SoFieldData::read(), SbImage::readFile(), SoFile::readNamedFile(),
SoDB::registerHeader(), SoEventCallback::releaseEvents(),
SoEngineOutput::removeConnection(), SoSensorManager::removeDelaySensor(),
SoInput::removeDirectory(), SoEventCallback::removeEventCallback(),
SoCone::removePart(), SoCylinder::removePart(), SoDB::removeRoute(),
SoSensorManager::removeTimerSensor(), SoDB::renameGlobalField(),
SbPlane::SbPlane(), SbPlane::SbPlane(), SbPlane::SbPlane(),
SbRotation::SbRotation(), SbSphere::SbSphere(), SbVec3f::SbVec3f(),
SbViewportRegion::SbViewportRegion(), SbViewportRegion::SbViewportRegion(),
SbViewportRegion::scaleHeight(), SbViewportRegion::scaleWidth(),
SoTimerQueueSensor::schedule(), SoTimerSensor::schedule(), SoBaseKit::set(),
SoBaseKit::set(), SoOutput::setAnnotation(), SoBaseKit::setAnyPart(),
SbCylinder::setAxis(), SbBox2d::setBounds(), SbBox2d::setBounds(),
SbBox2f::setBounds(), SbBox2f::setBounds(), SbBox2s::setBounds(),
SbBox2s::setBounds(), SbBox3f::setBounds(), SbBox3f::setBounds(),
SbBox3s::setBounds(), SbBox3s::setBounds(), SoInput::setBuffer(),
SoOutput::setCompact(), SoOutput::setCompression(),
SoSensorManager::setDelaySensorTimeout(), SoVRMLSound::setDopplerFactor(),
SoVRMLSound::setDopplerVelocity(), SoEventCallback::setHandled(),
SbColor4f::setHSVValue(), SbColor::setHSVValue(),
SoTransformerManip::setLocateHighlighting(), SoBase::setName(),
SoSFImage::setNeverWrite(), SoBaseKit::setPart(), SoEventCallback::setPath(),
SbViewportRegion::setPixelsPerInch(), SbCylinder::setRadius(),
SbSphere::setRadius(), SoRayPickAction::setRay(), SoDB::setRealTimeInterval(),
SoSFImage::setSubValue(), SoSFImage::setSubValues(),
SbCylinderSectionProjector::setTolerance(), SbSphereSheetProjector::setupPlane(),
SbLine::setValue(), SbRotation::setValue(), SbRotation::setValue(),
SbRotation::setValue(), SbRotation::setValue(), SbSphere::setValue(),
SbVec3f::setValue(), SbViewportRegion::setViewport(),
SbViewportRegion::setViewport(), SbViewportRegion::setViewportPixels(),
SbViewportRegion::setViewportPixels(), SbViewportRegion::setWindowSize(),
SbViewportRegion::setWindowSize(), SbRotation::slerp(),
SoVRMLSound::SoVRMLSound(), SoVRMLSound::startPlaying(),
SoVRMLSound::stopPlaying(), SbBox3d::transform(), SbBox3f::transform(),
SbBox3i32::transform(), SbPlane::transform(), SoChildList::traverse(),
SoBase::unref(), SoDelayQueueSensor::unschedule(),
SoTimerQueueSensor::unschedule(), SoTimerSensor::unschedule(),
SoTransformerManip::unsquishKnobs(),
SoSurroundScale::updateMySurroundParams(),
SoFrustumCamera::viewBoundingBox(),
SoOrthographicCamera::viewBoundingBox(),
SoPerspectiveCamera::viewBoundingBox(), SoOutput::writeBinaryArray(),
SoOffscreenRenderer::writeToPostScript(),
SoOffscreenRenderer::writeToPostScript(), and
SoOffscreenRenderer::writeToRGB().

like, that's SO many functions, the way every single one of them leans on this error class?? iconic behavior honestly πŸ’…


🫢 void SoDebugError::postInfo (const char *const source, const char *const format, ...) [static]

void SoDebugError::postInfo (const char *const source, const char *const format,  ...) [static]

Okay so this method posts a message, and the severity level it slaps on that message is "INFO". That's it, that's the vibe β€” informational, casual, no drama, just letting you know πŸ¦‹

And <source>? That's supposed to be the name of the calling function. So you tell it who's talking β€” not optional, bestie, it wants the receipts on which function is doing the posting πŸ“

Referenced by (and again, we're listing everyone, because we do not gatekeep here):

SoNodekitCatalog::addEntry(), SoFieldData::addEnumValue(),
SoFieldData::addField(), SoChildList::addPathAuditor(),
SoNode::addToCopyDict(), SoBase::addWriteReference(),
SoNodeKitPath::append(), SoNotList::append(), SoNotList::append(),
SoIntersectionDetectionAction::apply(), SoCamera::audioRender(),
SoListener::audioRender(), SoVRMLSound::audioRender(),
SoFieldContainer::copyFieldValues(), SoShape::createLineSegmentDetail(),
SoShape::createTriangleDetail(), SoType::createType(),
SoOutput::decrementIndent(), SoBase::destroy(), SoField::disconnect(),
SoField::disconnect(), SbXfBox3d::extendBy(), SbXfBox3d::extendBy(),
SbXfBox3f::extendBy(), SbXfBox3f::extendBy(), SoInput::findFile(),
SoIndexedFaceSet::generatePrimitives(), SoArray::getBoundingBox(),
SoState::getElement(), SoDragger::getLocaterPosition(),
SoNodeKitPath::getNode(), SoNodeKitPath::getNodeFromTail(),
SoDragger::getNormalizedLocaterPosition(),
SoOffscreenRenderer::getNumWriteFiletypes(), SoNodeKitPath::getTail(),
SoOffscreenRenderer::getWriteFiletypeInfo(),
SoOffscreenRenderer::getWriteFiletypeInfo(), SoCone::GLRender(),
SoSeparator::GLRenderBelowPath(), SoVRMLGroup::GLRenderBelowPath(),
SoAudioDevice::init(), SoSensorManager::insertDelaySensor(),
SoPath::insertIndex(), SoSensorManager::insertTimerSensor(),
SoType::isDerivedFrom(), SoOffscreenRenderer::isWriteSupported(),
SoBase::notify(), SoEngine::notify(), SoField::notify(),
SoFieldContainer::notify(), SoNode::notify(), SoNodeEngine::notify(),
SbTime::parsedate(), SoCamera::pointAt(), SoCamera::pointAt(),
SoNodeKitPath::pop(), SoSensorManager::processDelayQueue(),
SoSensorManager::processImmediateQueue(),
SoSensorManager::processTimerQueue(), SoBase::read(), SoFieldData::read(),
SoInput::read(), SoGroup::readChildren(),
SoFieldData::readFieldDescriptions(), SoFile::readNamedFile(),
SoBase::readRoute(), SoBase::ref(), SoField::removeAuditor(),
SoPath::removeIndex(), SoChildList::removePathAuditor(),
SoSceneManager::render(), SoGroup::replaceChild(), SoPath::replaceIndex(),
SoTimerSensor::reschedule(), SoOutput::resolveRoutes(),
SoTimerSensor::schedule(), SoSceneManager::scheduleRedraw(),
SoChildList::set(), SoFieldContainer::set(),
SoInteractionKit::setAnyPartAsDefault(),
SoInteractionKit::setAnyPartAsDefault(),
SoInteractionKit::setAnySurrogatePath(), SoSceneKit::setCameraNumber(),
SoGetBoundingBoxAction::setCenter(),
SoNodeKitListPart::setContainerType(), SoField::setDefault(),
SoSceneManager::setOrigin(), SoSceneManager::setSize(),
SoSceneManager::setViewportRegion(), SoSceneManager::setWindowSize(),
SoEngine::shouldCopy(), SoField::shouldWrite(),
SoFieldConverter::SoFieldConverter(), SoNodeKitPath::SoNodeKitPath(),
SoVRMLSound::SoVRMLSound(), SoField::startNotify(),
SoNodeKitPath::truncate(), SoBaseKit::typeCheck(), SoBase::unref(),
SoBase::unrefNoDelete(), SoTimerSensor::unschedule(), SoCamera::viewAll(),
SoBase::writeHeader(), SoBase::~SoBase(), SoEngine::~SoEngine(),
SoEngineOutput::~SoEngineOutput(), SoField::~SoField(),
SoInterpolate::~SoInterpolate(), SoNode::~SoNode(), and
SoNodeEngine::~SoNodeEngine().

not the destructors showing up at the end of the list like "we still have things to say" 😭 fr fr, they're all using postInfo() for their lil informational moments.


πŸŽ€ SoErrorCB * SoDebugError::getHandler (void *& data) const [protected], [virtual]

SoErrorCB * SoDebugError::getHandler (void *& data) const [protected], [virtual]

And this one? It's literally just a convenience wrapper around the getHandlerCallback() and getHandlerData() methods. That's the whole thing. It's giving "I'm a shortcut, not a whole personality" πŸ’–

Also β€” heads up β€” it's tagged [protected] and [virtual], so it lives in the protected zone and it can be overridden by subclasses, iykyk πŸ‘‘

Wait, don't go anywhere!! there's still more of this page coming, bestie β€” we are NOT done, hold the vibes 🌈✨

Reimplemented from SoError. πŸ’…

Like, that's the whole tea β€” this one didn't invent the wheel, it just inherited it from SoError and added its own little sparkle on top. πŸ¦‹


πŸ‘‘ AUTHOR πŸ‘‘

So bestie, plot twist: no human wrote this page. 😭

It was generated automatically by Doxygen for Coin, straight out of the source code. Which is lowkey iconic of Doxygen honestly, just churning out documentation like it's nothing. ✨


πŸ’€ real talk: if something here looks cursed, blame the source code, not a sleep-deprived maintainer at 3am. Doxygen doesn't do vibes, it just does facts.

And that's a wrap on the whole page, fr fr. πŸŽ€

The whole thing came from the Coin crew, stamped Version 2.5.0, and the manual page answers to the name SoDebugError(3). 🫢

Go debug something, bestie. You got this. πŸ’–βœ¨πŸŒΈ

πŸ“¦ where this page comes from