Memory Leaks

ricardo_arango

12-08-2007 23:44:33

I recently found out that Ogre removed the memory manager, and I was thinking that I no memory leaks...

Well, i have about 1200 memory leaks..

Trying to get rid of the memory leaks, I ended up leaving WinMain (or main) blank.

Even with not a single line of code, I get these leaks:


Detected memory leaks!
Dumping objects ->
{755} normal block at 0x02AF18C8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{754} normal block at 0x02AF1820, 108 bytes long.
Data: << a < a > 3C 7F 61 00 00 00 00 00 90 BA AD 02 3C 7F 61 00
{753} normal block at 0x02ADBA90, 16 bytes long.
Data: < > 90 BA AD 02 90 BA AD 02 CD CD CD CD CD CD CD CD
{752} normal block at 0x02AE5F50, 24 bytes long.
Data: <P_ P_ P_ > 50 5F AE 02 50 5F AE 02 50 5F AE 02 CD CD CD CD
{751} normal block at 0x02AF17C0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{750} normal block at 0x02ADFFD0, 24 bytes long.
Data: < > D0 FF AD 02 D0 FF AD 02 D0 FF AD 02 CD CD CD CD
{749} normal block at 0x02AF1760, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{748} normal block at 0x02AF1700, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{747} normal block at 0x02AF16A0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{746} normal block at 0x02AF1640, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{745} normal block at 0x02AF15E0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{744} normal block at 0x02AF1580, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{743} normal block at 0x02AF1520, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{742} normal block at 0x02AF0FC0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{741} normal block at 0x02AF0F60, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{740} normal block at 0x02AF0F00, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{738} normal block at 0x02AF1280, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{737} normal block at 0x02AF1220, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{736} normal block at 0x02AF11C0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{735} normal block at 0x02AF1160, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{734} normal block at 0x02AF1100, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{733} normal block at 0x02AF10A0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{732} normal block at 0x02AF1040, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{731} normal block at 0x02AD55A8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{730} normal block at 0x02AD5548, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{728} normal block at 0x02AF0EA0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{727} normal block at 0x02AF0E40, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{726} normal block at 0x02AF0DE0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{725} normal block at 0x02AF0D80, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{724} normal block at 0x02AF0D20, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{723} normal block at 0x02AF0CC0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{722} normal block at 0x02AF0C60, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{721} normal block at 0x02AF0C00, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{720} normal block at 0x02AF0BA0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{718} normal block at 0x02AF0AC8, 32 bytes long.
{712} normal block at 0x02AF0828, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{711} normal block at 0x02AF07C8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{710} normal block at 0x02AF0768, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{709} normal block at 0x02AF0708, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{708} normal block at 0x02AF06A8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{707} normal block at 0x02AF0648, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{706} normal block at 0x02AF05E8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{705} normal block at 0x02AF0588, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{704} normal block at 0x02AF0528, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{703} normal block at 0x02AF04C8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{702} normal block at 0x02AF0468, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{701} normal block at 0x02AF0408, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{700} normal block at 0x02AF03A8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{699} normal block at 0x02AF0348, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{698} normal block at 0x02AF02E8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{697} normal block at 0x02AF0288, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{696} normal block at 0x02AF0228, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{695} normal block at 0x02AF01C8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{694} normal block at 0x02AE7960, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{693} normal block at 0x02AE7900, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{691} normal block at 0x02ADEEB0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{690} normal block at 0x02ADEE50, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{689} normal block at 0x02AEE450, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{688} normal block at 0x02AEE3F0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{687} normal block at 0x02AECC18, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{686} normal block at 0x02AECBB8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{685} normal block at 0x02ADACC8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{684} normal block at 0x02ADAC68, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{683} normal block at 0x02AE1080, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{682} normal block at 0x02AE1020, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{681} normal block at 0x02AEAEE0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{680} normal block at 0x02AEAE80, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{679} normal block at 0x02AEA840, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{678} normal block at 0x02AE01B8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{677} normal block at 0x02AEFDA0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{676} normal block at 0x02AE2DA0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{675} normal block at 0x02AEA250, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{674} normal block at 0x02AE89B8, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{673} normal block at 0x02AE4E28, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{672} normal block at 0x02ADF730, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{671} normal block at 0x02AE9490, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{670} normal block at 0x02AE8170, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{669} normal block at 0x02AE69A0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{668} normal block at 0x02ADC248, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{667} normal block at 0x02AE9A18, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{666} normal block at 0x02AEB8F0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{665} normal block at 0x02AED1B0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{664} normal block at 0x02AEC290, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{663} normal block at 0x02AE5AD0, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65
{662} normal block at 0x02ADB308, 32 bytes long.
Data: <NxOgre 0.9-28.De> 4E 78 4F 67 72 65 20 30 2E 39 2D 32 38 2E 44 65


As you can see they are all NxOgre related. I am linking dynamically to NxOgre_d.lib.

Any ideas, how I could find/fix them?

betajaen

12-08-2007 23:47:15

Nope.

I don't know what the difference between "0x02ADBA90" and "0x02AE5F50" is. I'll turn on the Ogre Memory manager, but I'm pretty sure the "core" parts don't leak.

ricardo_arango

13-08-2007 00:16:53

OK, it seems CrtDebug is not the right tool for memory leaks...

Which tool do you use for leaks?

betajaen

13-08-2007 00:35:28

The Ogre One.

I'll enable it tommorow, and have a fiddle.

betajaen

13-08-2007 13:18:33

I have no leaks with NxOgre, with the Ogre memory manager enabled. Luis also tells me he has it enabled all the time and he has none either.

ricardo_arango

13-08-2007 21:26:47

Yes, what I meant before was that CrtDumpMemoryLeaks, always gives leaks, so that's why they weren't recommending it in other posts.

How do you enable ogre's memory manager?

betajaen

13-08-2007 22:09:18

It's a define such for "#define OGRE_DEBUG_MEMORY_MANAGER 0" and replace it with "#define OGRE_DEBUG_MEMORY_MANAGER 1" in the Ogre Solution.

You will need to re-compile Ogre, the Rendersystems, plugins, NxOgre and your application to make it work.