[ODE] dGeomSetBody

Ryan O'Connor ryan at pcsoftware.co.nz
Wed Sep 28 11:36:56 MST 2005

Hi. Whenever I use dGeomSetBody, MSVC++7 breaks into dbgheap.c with this

Unhandled exception at 0x7c901230 in AR_Example_Models.exe: User breakpoint.

If I look at the call stack I can see dGeomSetBody was called, then dFree()
for some reason which uses free() in windows. I've tried a debug version of
ODE (I'm using SINGLE-DEBUG-TRIMESH precompiled for msvc7), but I get the
same error.
I think it migth be some problem with my application's heap. Would this be
because I'm calling ODE wrapper functions inside a dll that's dynamically

The problematic code is below, and it is executed after the basic code like
setting up the world and space etc, as in the test applications:

	m_radius = 5;
	m_density = 10;

	//Create body in world
	m_body = g_PhysicsManager.CreateBody();
	dBodySetPosition(m_body, 0,5,0);

	//Create geometry for ball in global hash space
	m_geom = g_PhysicsManager.CreateSphere( m_radius );

	// Bind them together to make a dynamics object
	dGeomSetBody( m_geom, m_body);

g_PhysicsManager is a dllexport "ARPhysicsManager" class in my library, both
the library and application (AR_Example_Models) link with ode.lib.
CreateBody() and CreateSphere() simply wrap the 2 ODE functions at the
moment inside the library, like so:

dBodyID ARPhysicsManager::CreateBody()
	return dBodyCreate(m_world);

dGeomID ARPhysicsManager::CreateSphere(float radius)
	return dCreateSphere(m_space,radius);    

All my variables seem to be initialised to valid pointers. Is there
something obvious I've forgotten? Anything else I could try to further debug

More information about the ODE mailing list