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: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!
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?
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.