Problem with memory leaks

recon

20-09-2009 16:43:18

Hi

I newly just started developing games using Ogre and NxOgre (migrated from another engine) and I have one problem using NxOgre,
whenever I create a Actor or SceneGeometry my application cries out about a couple of memory leaks on shutdown.

this is the shutdown code I use:

mNxWorld->destroyScene(mNxMainScene);
mNxWorld->destroyWorld();
NxOgre::World::destroySingletons();


and heres some sample code that will produce memory leaks in my app:


NxOgre::Shapes s;
s.insert(new NxOgre::Capsule(radius,height));
NxOgre::Actor* actor = GetNxMainScene()->createActor(s);


If I remove the above code, no memory leaks is raised.

Besides from that, I think that NxOgre is a great piece of software, easy to use and straightforward (many thanks to the creator :))
Also, I'm using the latest Git version

betajaen

20-09-2009 16:54:03

Funnily enough, I've just discovered a memory leak when creating an actor.

It may be the same one. I'm working on a different branch of NxOgre right now, but I'll try and put backport my changes, and do a commit for you.

recon

20-09-2009 17:05:29

I'm working on a different branch of NxOgre right now, but I'll try and put backport my changes, and do a commit for you.

Ok, I'll keep an eye out for it :P
And thanks for the quick reply ^^

betajaen

20-09-2009 19:29:08

Here you go. The code compiles, and it does work in the detritus branch, but I haven't tested in the master branch yet.

So if you get no more leaks, I've found your problem. ;)

http://github.com/betajaen/nxogre/commi ... 659c9b5cd4

recon

23-09-2009 22:49:51

Sorry for the late reply, though your commit didn't seem to do the trick :?
Now I made myself absolutely sure that theres not a memory leak coming from my own code and the only Ogre/NxOgre objects I'm creating are the following:


NxOgre::Shape* shape;
NxOgre::Actor* actor;

shape = new NxOgre::Box(Vector3(1.0f,1.0f,1.0f));
actor = NxMainScene()->createActor(shape);

... run game loop ...

delete shape;
//delete actor; // NxOgre doesn't allow users to delete actors (and there's no NxMainScene()->destroyActor() either)
return 0; // (shutdown)


Also, you wrote "Possible leak fixed in RigidBody::create (Untested)" in the commit you linked me to above, only that the leak doesn't seem to have anything to do with the RigidBody object itself, I think the leak is coming from the actor or is there something I've missed?
Couldn't you compile the code above and run a few test yourself, would be much easier don't you think? ^^

*EDIT
This is the message I get after shutdown:
Dumping objects ->
{24345} normal block at 0x0133BA60, 16 bytes long.
Data: < h D Dv/ | 3 > CC 68 B3 00 44 02 00 00 44 76 2F 01 7C B8 33 01
Object dump complete.

betajaen

23-09-2009 23:10:42

I'll have a look at Actor for you, but all the action happens in RigidBody (which Actor inherits and makes use of it's creation/destruction functions).

You shouldn't delete the shape, the Actor/RigidBody will delete all of its shapes when it's destructor is called.

betajaen

23-09-2009 23:26:39

Well, it seems your right!

#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

#include "NxOgre.h"


void leak_check()
{

NxOgre::World* world = NxOgre::World::createWorld();

NxOgre::TimeController* time = NxOgre::TimeController::getSingleton();
NxOgre::Scene* scene = world->createScene();
NxOgre::Actor* actor = scene->createActor(new NxOgre::Box(1));

for (unsigned int i=0;i < 60;i++)
{
time->advance();
}

NxOgre::World::destroyWorld();
}


int main(int argc, char** argv)
{

leak_check();

_CrtDumpMemoryLeaks();
return 0;
}



{357} normal block at 0x00265BA8, 16 bytes long.
Data: <$k D t & |Z& > 24 6B 10 10 44 02 00 00 74 FD 26 00 7C 5A 26 00
{342} normal block at 0x0026FE18, 1 bytes long.
Data: < > 00
{341} normal block at 0x0026FDC8, 20 bytes long.
Data: <4 & > 34 D9 0F 10 01 00 00 00 18 FE 26 00 00 00 00 00
{340} normal block at 0x002656B0, 136 bytes long.
Data: <lx ? > 6C 78 BC 00 00 00 80 3F 00 00 00 00 00 00 00 00
{339} normal block at 0x0026FD70, 24 bytes long.
Data: <d w & V& > 64 DE 0F 10 DC 77 BC 00 C8 FD 26 00 B0 56 26 00
{311} normal block at 0x0CD1B788, 8200 bytes long.
Data: < V& F 0 > B0 56 26 00 88 00 00 00 46 02 00 00 30 DA 0F 10


# NxOgre Allocations
---
Versions:
- NxOgre: 1.5.6 'Git'
- PhysX: 2.8.1 (281)
Configuration:
- Compiler: Microsoft Visual C++ (1500)
- Accuracy: float
- Build: Debug Shared Library
Allocations:
- Pointer: #002656B0
Type: ShapeBlueprint
Size: 136 b
Source: n:\projects\nxogre.org\bloodymess\build\source\nxogrepointerclass.h#61
Dump: >
lx....€?..................€?....
..............€?................
..€?..............€?..€.........
......................€?..€?..€?
........
- Pointer: #0026FDC8
Type: StringBase
Size: 20 b
Source: n:\projects\nxogre.org\bloodymess\build\source\nxogrepointerclass.h#61
Dump: >
4.........&.........
- Pointer: #00265BA8
Type: PhysXPointer
Size: 16 b
Source: n:\projects\nxogre.org\bloodymess\build\source\nxogrepointerclass.h#61
Dump: >
$k..D...t.&.|Z&.
- Pointer: #0026FD70
Type: Box
Size: 24 b
Source: n:\projects\nxogre.org\bloodymess\build\source\nxogrepointerclass.h#61
Dump: >
d....w....&..V&.........
- Pointer: #0026FE18
Type: char
Size: 1 b
Source: n:\projects\nxogre.org\bloodymess\build\source\nxogrestring.h#66

# End of 5 allocations.


Both the Leak detector in Visual Studio and the NxOgreLeaks.txt file report the same leaks. The NxOgreLeaks.txt file is more usefull as it gives the source of the leak. Don't be concerned about the 8KB leak, that's actually the leak detector which gets killed after void main(). The rest are legitimate leaks.

Well your right, that the Box isn't getting destroyed when the Actor is. I'll get right on it!

recon

23-09-2009 23:41:23

Well your right, that the Box isn't getting destroyed when the Actor is. I'll get right on it!

Sweet, and I'll keep bugging you in this post until we got all memory leaks nailed down to the last byte :wink:

KyleKatarn

27-09-2009 14:04:57

Since we're dealing with memory leaks here, if I generate a triangleGeometry on the fly, like so:

NxOgre::TriangleGeometry* pTriangleEntranceStatic = new NxOgre::TriangleGeometry( pPhysEntranceStatic );

How can I properly clean it up? Because it generates a leak for me, and if I try using delete in the dtor, it will complain about not knowing about the variable pTriangleEntranceStatic , and if I declare it in the header, then delete it in the dtor, my project will crash on me.

betajaen

27-09-2009 14:21:08

You wouldn't, NxOgre does it for you.

All RigidBody based classes keep the pointers in a vector for you - for future usage; such as knowing which Shape belongs to who when you do raycasting, triggers, etc.

They are deleted when the RigidBody class is deleted.

danoli3

27-09-2009 14:36:03

When we run debug mode we have the following NxLeaks.txt doc:

This is with no Phyx Pointers at all.

# NxOgre Allocations
---
Versions:
- NxOgre: 1.5.6 'Git'
- PhysX: 2.8.1 (281)
Configuration:
- Compiler: Microsoft Visual C++ (1500)
- Accuracy: float
- Build: Debug Shared Library
Allocations:
- Pointer: #09143240
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- User pointer: #071AC440
Pointer class Id: 723
Size: 60 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrepointerclass.h#61
Dump: >
..s.x.s.......,..1..€....2......
@2......€2..................
- Pointer: #091431C0
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #09143200
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #091587E0
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #091587B0
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #09158810
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #09158780
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #09143280
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...

# End of 9 allocations.


When we added a PlaneGeometry for example:
// create a floor plane for the physics mesh to collide with.
pPhysScene->createSceneGeometry( new NxOgre::PlaneGeometry( 0, NxOgre::Vec3( 0, 0.1f, 0 )), Matrix44_Identity );


This is the Log after adding that:
# NxOgre Allocations
---
Versions:
- NxOgre: 1.5.6 'Git'
- PhysX: 2.8.1 (281)
Configuration:
- Compiler: Microsoft Visual C++ (1500)
- Accuracy: float
- Build: Debug Shared Library
Allocations:
- Pointer: #071C6E70
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #071C6EB0
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #071C6E30
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #0222CD60
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #0222CCD0
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #071C71B0
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D.......L...
- Pointer: #0222CD00
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #0222CD30
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #071C6DF0
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- User pointer: #07206BD8
Pointer class Id: 723
Size: 60 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrepointerclass.h#61
Dump: >
..s...s..g....w..m....".0n....".
pn..0."..n..`.".............

# End of 10 allocations.


Notice now the additional
- Pointer: #071C71B0
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D.......L...



When we added all of our TriangleGeometrys:


NxOgre::Mesh* pPhysEntranceStatic = NxOgre::MeshManager::getSingleton()->load( "media:EntranceStatic.nxs" );
NxOgre::Mesh* pPhysWalls = NxOgre::MeshManager::getSingleton()->load( "media:Walls.nxs" );
NxOgre::Mesh* pPhysChangeRooms = NxOgre::MeshManager::getSingleton()->load( "media:ChangeRooms.nxs" );
NxOgre::Mesh* pPhysFrontRight = NxOgre::MeshManager::getSingleton()->load( "media:FrontRight.nxs" );
NxOgre::Mesh* pPhysBackRight = NxOgre::MeshManager::getSingleton()->load( "media:BackRight.nxs" );
NxOgre::Mesh* pPhysFrontLeft = NxOgre::MeshManager::getSingleton()->load( "media:FrontLeft.nxs" );
NxOgre::Mesh* pPhysBackLeft = NxOgre::MeshManager::getSingleton()->load( "media:BackLeft.nxs" );
NxOgre::Mesh* pPhysCheckouts = NxOgre::MeshManager::getSingleton()->load( "media:Checkouts.nxs" );
NxOgre::Mesh* pPhysEntranceScanners = NxOgre::MeshManager::getSingleton()->load( "media:EntranceScanners.nxs" );
NxOgre::Mesh* pPhysDisplays = NxOgre::MeshManager::getSingleton()->load( "media:Displays.nxs" );

// create the TriangleGeometry from the Physics meshes
NxOgre::TriangleGeometry* pTriangleEntranceStatic = new NxOgre::TriangleGeometry( pPhysEntranceStatic );
NxOgre::TriangleGeometry* pTriangleWalls = new NxOgre::TriangleGeometry( pPhysWalls );
NxOgre::TriangleGeometry* pTriangleChangeRooms = new NxOgre::TriangleGeometry( pPhysChangeRooms );
NxOgre::TriangleGeometry* pTriangleFrontRight = new NxOgre::TriangleGeometry( pPhysFrontRight );
NxOgre::TriangleGeometry* pTriangleBackRight = new NxOgre::TriangleGeometry( pPhysBackRight );
NxOgre::TriangleGeometry* pTriangleFrontLeft = new NxOgre::TriangleGeometry( pPhysFrontLeft );
NxOgre::TriangleGeometry* pTriangleBackLeft = new NxOgre::TriangleGeometry( pPhysBackLeft );
NxOgre::TriangleGeometry* pTriangleCheckouts = new NxOgre::TriangleGeometry( pPhysCheckouts );
NxOgre::TriangleGeometry* pTriangleEntranceScanners = new NxOgre::TriangleGeometry( pPhysEntranceScanners );
NxOgre::TriangleGeometry* pTriangleDisplays = new NxOgre::TriangleGeometry( pPhysDisplays );

// Create the SceneGeometry and render the TriangleGeometry
pPhysScene->createSceneGeometry( pTriangleEntranceStatic, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleWalls, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleChangeRooms, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleFrontRight, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleBackRight, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleFrontLeft, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleBackLeft, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleCheckouts, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleEntranceScanners, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));
pPhysScene->createSceneGeometry( pTriangleDisplays, NxOgre::Matrix44( NxOgre::Vec3( 1000,0.01f,1000 )));

// create a floor plane for the physics mesh to collide with.
pPhysScene->createSceneGeometry( new NxOgre::PlaneGeometry( 0, NxOgre::Vec3( 0, 0.1f, 0 )), Matrix44_Identity );



We get the following NxLeaks:
# NxOgre Allocations
---
Versions:
- NxOgre: 1.5.6 'Git'
- PhysX: 2.8.1 (281)
Configuration:
- Compiler: Microsoft Visual C++ (1500)
- Accuracy: float
- Build: Debug Shared Library
Allocations:
- Pointer: #09E53280
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #076A99F0
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D....<..T.j.
- Pointer: #09E687E0
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #09F1A5E8
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D...t=..d.j.
- Pointer: #076A92B0
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D....:..t.j.
- Pointer: #076A9B70
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D...T<....j.
- Pointer: #076A9870
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D....;....j.
- Pointer: #076A9430
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D....:....j.
- Pointer: #09E53200
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #076A95F0
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D...4;....j.
- Pointer: #09E68780
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #09E53240
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #09E687B0
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #09F1A2A8
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D....<....j.
- Pointer: #076A90B0
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D...\:..4.j.
- Pointer: #09E68810
Type: ArrayReferenceCounter
Size: 2 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#639
- Pointer: #09F1A428
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D....<....j.
- User pointer: #076CC440
Pointer class Id: 723
Size: 60 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrepointerclass.h#61
Dump: >
..t...t...j......1..€....2......
@2......€2..................
- Pointer: #09E531C0
Type: SharedArray
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\sdk\nxogrearray.h#213
Dump: >
............P...
- Pointer: #076A9770
Type: PhysXPointer
Size: 16 b
Source: c:\ogresdk\ogreaddons\nxogre\build\source\nxogrepointerclass.h#61
Dump: >
\j..D...|;....j.

# End of 20 allocations.




Here is our Destructor right now:

// clean up physics
if(pPhysVisDebugRenderable)
delete pPhysVisDebugRenderable;

pPhysWorld->destroyScene( pPhysScene );
pPhysWorld->destroyWorld();
pPhysWorld->destroySingletons();



Our NxOgre Variables in our header are (so above makes sense):
// Physics Globals
NxOgre::World* pPhysWorld;
NxOgre::Scene* pPhysScene;
OGRE3DRenderSystem* pRenderSystem;


Any idea whats wrong?

betajaen

27-09-2009 14:50:23

It's the same related bug I found earlier in the post. I haven't gotten around to finding the problem yet, but it's on my list.

danoli3

27-09-2009 14:52:33

It's the same related bug I found earlier in the post. I haven't gotten around to finding the problem yet, but it's on my list.

Ah okay, thought it was a good idea to bring this up just incase it was another thing ;)

Thanks betajaen

betajaen

27-09-2009 14:59:44

No it's okay.

You see, the code for Actors, StaticGeometries, Volumes and KinematicActors are very similar, they all use the same internal functions for creation and destruction - so if there is a bug with one of them, it's usually with them all.

ulDuc

02-03-2010 12:04:15

EDIT : my leaks come when i close the program. And they are not present when i delete the line that moves the Body which was morking this morning :/

ul.Duc, sorry for disturbing

kurisusan

21-07-2010 15:56:41

Did this leak get fixed betajean ? I'm still getting the leak from the shape not being deleted on the bodies destruction.

cheers!

p.s appreciate your dedication to nxOgre btw :)

Sajty

11-08-2010 12:26:07

Hi!
In Critter (latest from GIT) I get memory leaks with visual leak detector.
Is it a known issue?

WARNING: Visual Leak Detector detected memory leaks!
---------- Block 82 at 0x0070D118: 8 bytes ----------
Call Stack:
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (36): std::_Allocate<std::_Container_proxy>
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (187): std::allocator<std::_Container_proxy>::allocate
c:\program files\microsoft visual studio 10.0\vc\include\xtree (492): std::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> >,1> >::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std
c:\program files\microsoft visual studio 10.0\vc\include\xtree (542): std::_Tree_val<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> >,1> >::_Tree_val<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std
c:\program files\microsoft visual studio 10.0\vc\include\xtree (699): std::_Tree<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> >,1> >::_Tree<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<u
c:\program files\microsoft visual studio 10.0\vc\include\map (305): std::multimap<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> > >::multimap<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body
lib\nxogre\sdk\nxogremultihashmap.h (141): NxOgre::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
98 73 71 00 00 00 00 00 .sq..... ........

---------- Block 81 at 0x00717398: 20 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogremultihashmap.h (141): NxOgre::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
18 D1 70 00 CD CD CD CD E8 73 71 00 00 00 00 00 ..p..... .sq.....
CD CD CD CD ........ ........

---------- Block 83 at 0x007173E8: 24 bytes ----------
Call Stack:
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (36): std::_Allocate<std::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> >,1> >::_Node>
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (187): std::allocator<std::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> >,1> >::_Node>::allocate
c:\program files\microsoft visual studio 10.0\vc\include\xtree (544): std::_Tree_val<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> >,1> >::_Tree_val<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std
c:\program files\microsoft visual studio 10.0\vc\include\xtree (699): std::_Tree<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> >,1> >::_Tree<std::_Tmap_traits<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<u
c:\program files\microsoft visual studio 10.0\vc\include\map (305): std::multimap<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> > >::multimap<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body
lib\nxogre\sdk\nxogremultihashmap.h (141): NxOgre::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
E8 73 71 00 E8 73 71 00 E8 73 71 00 CD CD CD CD .sq..sq. .sq.....
CD CD CD CD 01 01 CD CD ........ ........

---------- Block 84 at 0x00717440: 4 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogregc.h (108): NxOgre::GC::safe_new0<unsigned int>
lib\nxogre\sdk\nxogresharedpointer.h (63): NxOgre::SharedPointer<std::multimap<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::Body *> > > >::SharedPointer<std::multimap<unsigned int,Critter::Body *,std::less<unsigned int>,std::allocator<s
lib\nxogre\sdk\nxogremultihashmap.h (142): NxOgre::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::Body *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
FF FF FF FF ........ ........

---------- Block 85 at 0x00717480: 20 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogremultihashmap.h (141): NxOgre::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
D0 74 71 00 CD CD CD CD 18 75 71 00 00 00 00 00 .tq..... .uq.....
CD CD CD CD ........ ........

---------- Block 86 at 0x007174D0: 8 bytes ----------
Call Stack:
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (36): std::_Allocate<std::_Container_proxy>
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (187): std::allocator<std::_Container_proxy>::allocate
c:\program files\microsoft visual studio 10.0\vc\include\xtree (492): std::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> >,1> >::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsig
c:\program files\microsoft visual studio 10.0\vc\include\xtree (542): std::_Tree_val<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> >,1> >::_Tree_val<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsig
c:\program files\microsoft visual studio 10.0\vc\include\xtree (699): std::_Tree<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> >,1> >::_Tree<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>
c:\program files\microsoft visual studio 10.0\vc\include\map (305): std::multimap<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> > >::multimap<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigne
lib\nxogre\sdk\nxogremultihashmap.h (141): NxOgre::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
80 74 71 00 00 00 00 00 .tq..... ........

---------- Block 87 at 0x00717518: 24 bytes ----------
Call Stack:
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (36): std::_Allocate<std::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> >,1> >::_Node>
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (187): std::allocator<std::_Tree_nod<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> >,1> >::_Node>::allocate
c:\program files\microsoft visual studio 10.0\vc\include\xtree (544): std::_Tree_val<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> >,1> >::_Tree_val<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsig
c:\program files\microsoft visual studio 10.0\vc\include\xtree (699): std::_Tree<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> >,1> >::_Tree<std::_Tmap_traits<unsigned int,Critter::KinematicBody *,std::less<unsigned int>
c:\program files\microsoft visual studio 10.0\vc\include\map (305): std::multimap<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> > >::multimap<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigne
lib\nxogre\sdk\nxogremultihashmap.h (141): NxOgre::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
18 75 71 00 18 75 71 00 18 75 71 00 CD CD CD CD .uq..uq. .uq.....
CD CD CD CD 01 01 CD CD ........ ........

---------- Block 88 at 0x00717570: 4 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogregc.h (108): NxOgre::GC::safe_new0<unsigned int>
lib\nxogre\sdk\nxogresharedpointer.h (63): NxOgre::SharedPointer<std::multimap<unsigned int,Critter::KinematicBody *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,Critter::KinematicBody *> > > >::SharedPointer<std::multimap<unsigned int,Critter::KinematicBody *,std::less<uns
lib\nxogre\sdk\nxogremultihashmap.h (142): NxOgre::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>::multihashmap<Critter::KinematicBody *,NxOgre::GC::HasGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
FF FF FF FF ........ ........

---------- Block 89 at 0x007175B0: 20 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogrevector.h (206): NxOgre::vector<Critter::Renderable *,NxOgre::GC::NoGarbageCollection>::vector<Critter::Renderable *,NxOgre::GC::NoGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
00 76 71 00 60 7F 71 00 60 7F 71 00 64 7F 71 00 .vq.`.q. `.q.d.q.
CD CD CD CD ........ ........

---------- Block 90 at 0x00717600: 8 bytes ----------
Call Stack:
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (36): std::_Allocate<std::_Container_proxy>
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (187): std::allocator<std::_Container_proxy>::allocate
c:\program files\microsoft visual studio 10.0\vc\include\vector (442): std::_Vector_val<Critter::Renderable *,std::allocator<Critter::Renderable *> >::_Vector_val<Critter::Renderable *,std::allocator<Critter::Renderable *> >
c:\program files\microsoft visual studio 10.0\vc\include\vector (508): std::vector<Critter::Renderable *,std::allocator<Critter::Renderable *> >::vector<Critter::Renderable *,std::allocator<Critter::Renderable *> >
lib\nxogre\sdk\nxogrevector.h (206): NxOgre::vector<Critter::Renderable *,NxOgre::GC::NoGarbageCollection>::vector<Critter::Renderable *,NxOgre::GC::NoGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
B0 75 71 00 00 00 00 00 .uq..... ........

---------- Block 91 at 0x00717648: 4 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogregc.h (108): NxOgre::GC::safe_new0<unsigned int>
lib\nxogre\sdk\nxogresharedpointer.h (63): NxOgre::SharedPointer<std::vector<Critter::Renderable *,std::allocator<Critter::Renderable *> > >::SharedPointer<std::vector<Critter::Renderable *,std::allocator<Critter::Renderable *> > ><std::vector<Critter::Renderable *,std::allocator<Critter::Renderab
lib\nxogre\sdk\nxogrevector.h (207): NxOgre::vector<Critter::Renderable *,NxOgre::GC::NoGarbageCollection>::vector<Critter::Renderable *,NxOgre::GC::NoGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
FF FF FF FF ........ ........

---------- Block 92 at 0x00717688: 20 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogrevector.h (206): NxOgre::vector<Critter::PointRenderable *,NxOgre::GC::NoGarbageCollection>::vector<Critter::PointRenderable *,NxOgre::GC::NoGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
D8 76 71 00 00 00 00 00 00 00 00 00 00 00 00 00 .vq..... ........
CD CD CD CD ........ ........

---------- Block 93 at 0x007176D8: 8 bytes ----------
Call Stack:
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (36): std::_Allocate<std::_Container_proxy>
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (187): std::allocator<std::_Container_proxy>::allocate
c:\program files\microsoft visual studio 10.0\vc\include\vector (442): std::_Vector_val<Critter::PointRenderable *,std::allocator<Critter::PointRenderable *> >::_Vector_val<Critter::PointRenderable *,std::allocator<Critter::PointRenderable *> >
c:\program files\microsoft visual studio 10.0\vc\include\vector (508): std::vector<Critter::PointRenderable *,std::allocator<Critter::PointRenderable *> >::vector<Critter::PointRenderable *,std::allocator<Critter::PointRenderable *> >
lib\nxogre\sdk\nxogrevector.h (206): NxOgre::vector<Critter::PointRenderable *,NxOgre::GC::NoGarbageCollection>::vector<Critter::PointRenderable *,NxOgre::GC::NoGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
88 76 71 00 00 00 00 00 .vq..... ........

---------- Block 94 at 0x00717720: 4 bytes ----------
Call Stack:
lib\nxogre\sdk\nxogregc.h (108): NxOgre::GC::safe_new0<unsigned int>
lib\nxogre\sdk\nxogresharedpointer.h (63): NxOgre::SharedPointer<std::vector<Critter::PointRenderable *,std::allocator<Critter::PointRenderable *> > >::SharedPointer<std::vector<Critter::PointRenderable *,std::allocator<Critter::PointRenderable *> > ><std::vector<Critter::PointRenderable *,std::al
lib\nxogre\sdk\nxogrevector.h (207): NxOgre::vector<Critter::PointRenderable *,NxOgre::GC::NoGarbageCollection>::vector<Critter::PointRenderable *,NxOgre::GC::NoGarbageCollection>
lib\critter\build\source\critterrendersystem.cpp (47): Critter::RenderSystem::RenderSystem
source\src\physxscene.cpp (26): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
FF FF FF FF ........ ........

---------- Block 101 at 0x00717F60: 4 bytes ----------
Call Stack:
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (36): std::_Allocate<Critter::Renderable *>
c:\program files\microsoft visual studio 10.0\vc\include\xmemory (187): std::allocator<Critter::Renderable *>::allocate
c:\program files\microsoft visual studio 10.0\vc\include\vector (751): std::vector<Critter::Renderable *,std::allocator<Critter::Renderable *> >::reserve
c:\program files\microsoft visual studio 10.0\vc\include\vector (1298): std::vector<Critter::Renderable *,std::allocator<Critter::Renderable *> >::_Reserve
c:\program files\microsoft visual studio 10.0\vc\include\vector (992): std::vector<Critter::Renderable *,std::allocator<Critter::Renderable *> >::push_back
lib\nxogre\sdk\nxogrevector.h (253): NxOgre::vector<Critter::Renderable *,NxOgre::GC::NoGarbageCollection>::push_back
lib\critter\build\source\critterrendersystem.cpp (140): Critter::RenderSystem::createRenderable
lib\critter\build\source\critterrendersystem.cpp (210): Critter::RenderSystem::setVisualisationMode
source\src\physxscene.cpp (28): PhysXScene::PhysXScene
source\src\physxengine.cpp (31): PhysXEngine::createScene
source\src\world.cpp (150): World::run
source\src\main.cpp (15): main
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (555): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): mainCRTStartup
0x76051194 (File and line number not available): BaseThreadInitThunk
0x771FB495 (File and line number not available): RtlInitializeExceptionChain
0x771FB468 (File and line number not available): RtlInitializeExceptionChain
Data:
30 16 8A 00 0....... ........

Visual Leak Detector detected 15 memory leaks.
Visual Leak Detector is now exiting.