Leaks!?

A place for users of OGRE to discuss ideas and experiences of utilitising OGRE in their games / demos / applications.
Post Reply
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Leaks!?

Post by eugen »

i'm using NuMega BoundsChecker and i got this memory (realloc, but never allocated) leak from the start...i use the ExampleApplication and as u can see only ran ogre code so far
Image
what do u think?!
i'm trying to get a leak free program! :roll:
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Post by eugen »

those might be also problems...they are detected at the end of the ogre demo!
[img]
ftp://www.laserrollen.de/html/eu/OgreFo ... itled1.JPG
[/img]
[img]
ftp://www.laserrollen.de/html/eu/OgreFo ... itled2.JPG
[/img]
[img]
ftp://www.laserrollen.de/html/eu/OgreFo ... itled3.JPG
[/img]
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Post by eugen »

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

How reliable is this? I ran an Ogre demo through Rational's leak tracker a little while back (I forget the name of it) and it reported utter nonsense as leaks - it was clear that it didn't understand STL properly. I've never use BoundsChecker.
User avatar
:wumpus:
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3067
Joined: Tue Feb 10, 2004 12:53 pm
Location: The Netherlands
x 1

Post by :wumpus: »

It is allowed to reallocate a null pointer, realloc(NULL, size) is defined as alloc(size)
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Post by eugen »

I'm not sure how reliable is it, but all errors it found for me (which i was making) were real (thou some of them very hidden)!

this is the result i obtain running the bspdemocollision!
the same (first five) errors apear on my demo, which is notting like bspdemo! the other ones are demo specific!

i hope it helps...the first above window contains details of the errors...the files and the reason for some...

[img]
http://www.laserrollen.de/eu/OgreForum/global.JPG
[/img]
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Post by eugen »

u're right about the realloc.
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Post by eugen »

"A module attempted to free memory that was allocated by a different module. If a module is statically linked to the C runtime library and uses an RTL call (such as malloc) to allocate memory, then it is the module’s responsibility to free that memory. The memory cannot be freed from a different module."

this is the explanation for the first five errors...
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

The thing is, we deliberately don't statically link to the C runtime library, precisely because of this heap allocation nonsense. Therefore this error is a misnomer - perhaps it can't tell? We link dynamically to msvcrt*.dll.

It may have gotten confused because the old dependencies had some libs which were not compiled with quite the right runtime lib settings. 1.0.0's dependencies have been more carefully recompiled from source so that they are all using the dynamically linked, multithreaded CRT.
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Post by eugen »

Great! Thnx!
Post Reply