Support Forum       G3D Web Page     
Namespaces | Macros | Typedefs | Functions | Variables
debugAssert.h File Reference

Namespaces

 G3D
 
 G3D::_internal
 

Macros

#define __debugPromptShowDialog__   true
 
More...
 
#define alwaysAssertM   debugAssertM
 
Same as debugAssertM except that it asserts in release builds as well. More...
 
#define debugAssert(exp)   debugAssertM(exp, G3D::String("Debug assertion failure"))
 Breaks if the expression is false. More...
 
#define debugAssertM(exp, message)
 Breaks if the expression is false and displays a message. More...
 
#define debugBreak()   G3D::_internal::_releaseInputGrab_(); rawBreak(); G3D::_internal::_restoreInputGrab_();
 
Break at the current location (i.e. More...
 
#define rawBreak()   ::DebugBreak();
 

Typedefs

typedef bool(* G3D::AssertionHook) (const char *_expression, const String &message, const char *filename, int lineNumber, bool useGuiPrompt)
 

Functions

bool G3D::_internal::_handleDebugAssert_ (const char *expression, const String &message, const char *filename, int lineNumber, bool useGuiPrompt)
 
Pops up an assertion dialog or prints an assertion More...
 
bool G3D::_internal::_handleErrorCheck_ (const char *expression, const String &message, const char *filename, int lineNumber, bool useGuiPrompt)
 
void G3D::_internal::_releaseInputGrab_ ()
 Attempts to give the user back their mouse and keyboard if they were locked to the current window. More...
 
void G3D::_internal::_restoreInputGrab_ ()
 Attempts to restore the state before releaseInputGrab. More...
 
AssertionHook G3D::assertionHook ()
 
AssertionHook G3D::failureHook ()
 
void G3D::setAssertionHook (AssertionHook hook)
 
Allows customization of the global function invoked when a debugAssert fails. More...
 
void G3D::setFailureHook (AssertionHook hook)
 
Called by alwaysAssertM in case of failure in release mode. More...
 

Variables

AssertionHook G3D::_internal::_debugHook
 
AssertionHook G3D::_internal::_failureHook
 
Display * G3D::_internal::x11Display
 
A pointer to the X11 display. More...
 
Window G3D::_internal::x11Window
 
A pointer to the X11 window. More...
 

Detailed Description

Referenced Code: John Robbins, Microsoft Systems Journal Bugslayer Column, Feb 1999. http://msdn.microsoft.com/library/periodic/period99/feb99_BUGSLAYE_BUGSLAYE.htm
Referenced Code: Douglas Cox, An assert() Replacement, Code of The Day, flipcode, Sept 19, 2000 http://www.flipcode.com/cgi-bin/msg.cgi?showThread=COTD-AssertReplace&forum=cotd&id=-1

G3D Innovation Engine http://casual-effects.com/g3d Copyright 2000-2019, Morgan McGuire All rights reserved Available under the BSD License

Macro Definition Documentation

◆ __debugPromptShowDialog__

#define __debugPromptShowDialog__   true


◆ alwaysAssertM

#define alwaysAssertM   debugAssertM


Same as debugAssertM except that it asserts in release builds as well.

Referenced by G3D::BlockPoolMemoryManager::alloc(), G3D::EmulatedXR::EmulatedXRController::angleDelta(), G3D::Array< G3D::AABox >::appendPOD(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::clear(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::debugCheckStatus(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::FastPODTable(), G3D::FastPointHashGrid< Value, PosFunc >::FastPointHashGrid(), G3D::GLFWWindow::fullRect(), G3D::Image::get(), G3D::Framebuffer::getClearValue(), G3D::Spline< UprightFrame >::getControl(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::grow(), G3D::PointKDTree< T, PositionFunc, HashFunc, EqualsFunc >::BoxIntersectionIterator::operator T*(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::BoxIntersectionIterator::operator T*(), G3D::PointKDTree< T, PositionFunc, HashFunc, EqualsFunc >::BoxIntersectionIterator::operator*(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::BoxIntersectionIterator::operator*(), G3D::PointKDTree< T, PositionFunc, HashFunc, EqualsFunc >::BoxIntersectionIterator::operator->(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::BoxIntersectionIterator::operator->(), G3D::ParticleSystemModel::pose(), G3D::Array< G3D::AABox >::randomize(), G3D::Array< G3D::AABox >::resize(), G3D::OSWindow::runMainLoop(), G3D::Image::set(), G3D::Framebuffer::setClearValue(), G3D::OptiXTriTree::setContents(), G3D::VulkanTriTree::setContents(), G3D::FilmSettings::setDebugZoom(), G3D::GLFWWindow::setFullRect(), G3D::GuiScrollBar::setThumbPos(), G3D::Map2D< Color1, Color1 >::slowGet(), G3D::Array< G3D::AABox >::swap(), G3D::MeshAlg::toIndexedTriList(), and G3D::ArticulatedModel::Mesh::triangleCount().

◆ debugAssert

#define debugAssert (   exp)    debugAssertM(exp, G3D::String("Debug assertion failure"))

Breaks if the expression is false.

If G3D_DEBUG_NOGUI is defined, prompts at the console, otherwise pops up a dialog. The user may then break (debug), ignore, or halt the program.

The assertion is also posted to the clipboard under Win32.

Referenced by G3D::BlockPoolMemoryManager::alloc(), G3D::BufferUnmapper::alloc(), G3D::Spline< UprightFrame >::append(), G3D::Array< G3D::AABox >::append(), G3D::PointKDTree< T, PositionFunc, HashFunc, EqualsFunc >::Node::assignSplitBounds(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::Node::assignSplitBounds(), G3D::Box2D::axis(), G3D::Box::axis(), G3D::ParticleSystem::Block::Block(), G3D::XRWidget::cameraForView(), G3D::clamp(), G3D::_BSPMAP::BitSet::clear(), G3D::FastPointHashGrid< Value, PosFunc >::clear(), G3D::Grid< Cell >::clearAndResize(), G3D::Table< String, double >::clearAndSetMemoryManager(), G3D::Array< G3D::AABox >::clearAndSetMemoryManager(), G3D::Box2D::corner(), G3D::Rect2D::corner(), G3D::AttributeArray::createInterleaved(), G3D::cyclicCatmullRomSpline(), G3D::Box::extent(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::FastPODTable(), G3D::SmallArray< G3D::Vector4, 8 >::fastRemove(), G3D::Array< G3D::AABox >::fastRemove(), G3D::GApp::gazeForEye(), G3D::Tri::getIndex(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::getStats(), G3D::Pointer< Value >::getValue(), G3D::GuiNumberBox< int >::GuiNumberBox(), G3D::Plane::halfSpaceContainsFinite(), G3D::CPUVertexArray::hasTexCoord(), G3D::iClamp(), G3D::MapComponent< Image >::image(), G3D::MeshAlg::Vertex::inFace(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::initOffsetArray(), G3D::Pathfinder< Node, HashFunc >::PriorityQueue< Key, Value >::insert(), G3D::_BSPMAP::BitSet::isOn(), G3D::Array< G3D::AABox >::last(), G3D::linearSpline(), G3D::PointKDTree< T, PositionFunc, HashFunc, EqualsFunc >::makeNode(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::makeNode(), G3D::Pathfinder< Node, HashFunc >::NodeOrNull::node(), G3D::ConvexPolygon::normal(), G3D::Tri::normal(), G3D::SmallTable< Key, Value, HashFunc, EqualsFunc >::Iterator::operator Entry *(), G3D::Table< Key, Value, HashFunc, EqualsFunc >::Iterator::operator Entry *(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::Comparator::operator()(), G3D::SmallTable< Key, Value, HashFunc, EqualsFunc >::Iterator::operator++(), G3D::FastPointHashGrid< Value, PosFunc >::Iterator::operator++(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::Iterator::operator++(), G3D::Table< Key, Value, HashFunc, EqualsFunc >::Iterator::operator++(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::IteratorBase::operator++(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::BoxIterator::operator++(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::SphereIterator::operator++(), G3D::SmallTable< Key, Value, HashFunc, EqualsFunc >::Iterator::operator->(), G3D::Table< Key, Value, HashFunc, EqualsFunc >::Iterator::operator->(), G3D::Spline< UprightFrame >::operator==(), G3D::Vector4uint8::operator[](), G3D::Vector4uint16::operator[](), G3D::Vector4int16::operator[](), G3D::Vector3uint8::operator[](), G3D::Vector2int32::operator[](), G3D::Vector2uint16::operator[](), G3D::Vector2uint32::operator[](), G3D::Vector2int16::operator[](), G3D::Vector4unorm8::operator[](), G3D::Vector4int32::operator[](), G3D::Vector3int16::operator[](), G3D::Vector2unorm16::operator[](), G3D::SmallArray< G3D::Vector4, 8 >::operator[](), G3D::Vector3int32::operator[](), G3D::Matrix2::operator[](), G3D::Matrix2x3::operator[](), G3D::Matrix3x4::operator[](), G3D::Grid< Cell >::operator[](), G3D::TriTree::operator[](), G3D::Color3unorm8::operator[](), G3D::Vector4int8::operator[](), G3D::Matrix3::operator[](), G3D::Matrix4::operator[](), G3D::TimeQueue< T >::operator[](), G3D::Matrix4float64::operator[](), G3D::Queue< G3D::_internal::NetworkCallbackInfo >::operator[](), G3D::Quat::operator[](), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::operator[](), G3D::Array< G3D::AABox >::operator[](), G3D::Tri::packedTangent(), G3D::Array< G3D::AABox >::partition(), G3D::Capsule::point(), G3D::Cylinder::point(), G3D::CoordinateFrame::pointToObjectSpace(), G3D::SmallArray< G3D::Vector4, 8 >::pop(), G3D::Array< G3D::AABox >::pop(), G3D::SmallArray< G3D::Vector4, 8 >::popDiscard(), G3D::Array< G3D::AABox >::popDiscard(), G3D::Array< G3D::AABox >::randomElement(), G3D::receive(), G3D::Array< G3D::AABox >::remove(), G3D::Pathfinder< Node, HashFunc >::PriorityQueue< Key, Value >::removeMin(), G3D::Array< G3D::AABox >::reserve(), G3D::Framebuffer::resize(), G3D::Array< G3D::AABox >::resize(), G3D::CPUPixelTransferBuffer::row(), G3D::PixelTransferBuffer::rowOffset(), G3D::serializeMessage(), G3D::_BSPMAP::BitSet::set(), G3D::AABox::set(), G3D::Map2D< Color1, Color1 >::set(), G3D::Projection::setFarPlaneZ(), G3D::GApp::setFrameDuration(), G3D::Projection::setNearPlaneZ(), G3D::Pointer< Value >::setValue(), G3D::Spline< UprightFrame >::size(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::CellIterator::CellObject::size(), G3D::Tri::tangent(), G3D::Tri::tangent2(), G3D::Tri::texCoord(), G3D::MapComponent< Image >::texture(), G3D::MeshAlg::toIndexedTriList(), G3D::uiClamp(), G3D::FastPointHashGrid< Value, PosFunc >::BoxIterator::value(), G3D::PointKDTree< T, PositionFunc, HashFunc, EqualsFunc >::Node::verifyNode(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::Node::verifyNode(), G3D::Triangle::vertex(), G3D::Tri::vertex(), G3D::ConvexPolygon2D::vertex(), G3D::LogScaleAdapter< T >::wrap(), G3D::wrap(), G3D::BinaryOutput::writeBytes(), G3D::BinaryOutput::writeFloat32(), G3D::BinaryOutput::writeInt32(), and G3D::XML::XML().

◆ debugAssertM

#define debugAssertM (   exp,
  message 
)
Value:
do { \
if (!(exp)) { \
if ((G3D::_internal::_debugHook != nullptr) && \
G3D::_internal::_debugHook((const char*)(#exp), message, __FILE__, __LINE__, __debugPromptShowDialog__)) { \
rawBreak(); \
} \
} \
} while (0)
#define __debugPromptShowDialog__
Definition: debugAssert.h:125
AssertionHook _debugHook
void _restoreInputGrab_()
Attempts to restore the state before releaseInputGrab.
Quat exp(const Quat &q)
Definition: Quat.h:737
void _releaseInputGrab_()
Attempts to give the user back their mouse and keyboard if they were locked to the current window...

Breaks if the expression is false and displays a message.

If G3D_DEBUG_NOGUI is defined, prompts at the console, otherwise pops up a dialog. The user may then break (debug), ignore, or halt the program.

The assertion is also posted to the clipboard under Win32.

Referenced by G3D::Spline< UprightFrame >::append(), G3D::Shape::axes(), G3D::RayShape::boundingAABox(), G3D::AxesShape::boundingAABox(), G3D::Shape::box(), G3D::Shape::capsule(), G3D::FastPointHashGrid< Value, PosFunc >::clear(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::clear(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::computeBounds(), G3D::Shape::cylinder(), G3D::Spline< UprightFrame >::evaluate(), G3D::Quat::exp(), G3D::FastPODTable< Key, Value, HashFunc, EqualsFunc, valueIsSimplePOD >::findSlot(), G3D::Array< G3D::AABox >::first(), G3D::Array< G3D::AABox >::firstIndex(), G3D::RenderDevice::framebuffer(), G3D::BlockPoolMemoryManager::free(), G3D::SmallTable< Key, Value, HashFunc, EqualsFunc >::get(), G3D::Table< String, double >::get(), G3D::AnyTableReader::getFilenameIfPresent(), G3D::AnyTableReader::getIfPresent(), G3D::Vector3::getTangents(), G3D::GKey::GKey(), G3D::GuiNumberBox< int >::GuiNumberBox(), G3D::GuiSlider< int >::GuiSlider(), G3D::ArticulatedModel::Mesh::hasBones(), G3D::Shape::indexArray(), G3D::Array< G3D::AABox >::lastIndex(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::makeNode(), G3D::Array< G3D::AABox >::middle(), G3D::Array< G3D::AABox >::middleIndex(), G3D::FastPointHashGrid< Value, PosFunc >::BoxIterator::operator++(), G3D::FastPointHashGrid< Value, PosFunc >::SphereIterator::operator++(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::Iterator::operator++(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::BoxIterator::operator++(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::CellIterator::operator++(), G3D::Array< G3D::AABox >::operator[](), G3D::Array< G3D::AABox >::partition(), G3D::Shape::plane(), G3D::Shape::point(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::PointHashGrid(), G3D::Shape::ray(), G3D::PointHashGrid< Value, PosFunc, EqualsFunc >::remove(), G3D::PointKDTree< T, PositionFunc, HashFunc, EqualsFunc >::remove(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::remove(), G3D::Component< Color3, Image3 >::sample(), G3D::RenderDevice::sendIndices(), G3D::serializeMessage(), G3D::AttributeArray::set(), G3D::RenderDevice::setFramebuffer(), G3D::BinaryInput::setPosition(), G3D::Shape::sphere(), G3D::Framebuffer::texture(), G3D::Shape::triangle(), G3D::AttributeArray::updateInterleaved(), G3D::KDTree< T, BoundsFunc, HashFunc, EqualsFunc >::Node::verifyNode(), G3D::_internal::PolyLineGeneric< SegmentType, VertexType >::vertex(), and G3D::Shape::vertexArray().

◆ debugBreak


Break at the current location (i.e.

don't push a procedure stack frame before breaking).

◆ rawBreak

#define rawBreak ( )    ::DebugBreak();

documentation generated on Wed Nov 24 2021 08:01:51 using doxygen 1.8.15