Page 1 of 1

OGRE 1.9+Win7+OpenGLRenderer: Memory leak

Posted: Tue Aug 15, 2017 3:21 pm
by only_a_ptr
Hello.

I'm using "Windows Application Verifier" and I'm getting a debug break with "memory leak" error report when stepping over the following line: https://bitbucket.org/sinbad/ogre/annot ... rt.cpp-524

This is the critical part of AppVerifier output:

Code: Select all

<avrf:logEntry Time="2017-08-15 : 15:19:55" LayerName="Leak" StopCode="0x900" Severity="Error">
			<avrf:message>A heap allocation was leaked.</avrf:message>
			<avrf:parameter1>86c8ee0 - Address of the leaked allocation. Run !heap -p -a <address> to get additional information about the allocation.</avrf:parameter1>
			<avrf:parameter2>3f8848c - Address to the allocation stack trace. Run dps <address> to view the allocation stack.</avrf:parameter2>
			<avrf:parameter3>d8cdfe0 - Address of the owner dll name. Run du <address> to read the dll name.</avrf:parameter3>
			<avrf:parameter4>fd00000 - Base of the owner dll. Run .reload <dll_name> = <address> to reload the owner dll. Use &apos;lm&apos; to get more information about the loaded and unloaded modules.</avrf:parameter4>
			<avrf:stackTrace>
				<avrf:trace>vfbasics!+f51b2d6 ( @ 0)</avrf:trace>
				<avrf:trace>vfbasics!+f51bc61 ( @ 0)</avrf:trace>
				<avrf:trace>vfbasics!+f517341 ( @ 0)</avrf:trace>
				<avrf:trace>ntdll!RtlApplicationVerifierStop+1a6 ( @ 0)</avrf:trace>
				<avrf:trace>ntdll!RtlUlonglongByteSwap+227e ( @ 0)</avrf:trace>
				<avrf:trace>ntdll!LdrUnloadDll+4a ( @ 0)</avrf:trace>
				<avrf:trace>vfbasics!+f517936 ( @ 0)</avrf:trace>
				<avrf:trace>KERNELBASE!FreeLibrary+15 ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvPresentBuffers+88b5c1 ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvPresentBuffers+84770e ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvPresentBuffers+847810 ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvPresentBuffers+8ea18 ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvPresentBuffers+8114f0 ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvPresentBuffers+8104fc ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvSwapBuffers+ae ( @ 0)</avrf:trace>
				<avrf:trace>atioglxx!DrvValidateVersion+1f ( @ 0)</avrf:trace>
				<avrf:trace>OPENGL32!wglSwapMultipleBuffers+c5e ( @ 0)</avrf:trace>
				<avrf:trace>OPENGL32!wglSwapMultipleBuffers+e46 ( @ 0)</avrf:trace>
				<avrf:trace>OPENGL32!wglSwapMultipleBuffers+efc ( @ 0)</avrf:trace>
				<avrf:trace>OPENGL32!wglGetProcAddress+45f ( @ 0)</avrf:trace>
				<avrf:trace>OPENGL32!wglGetPixelFormat+70 ( @ 0)</avrf:trace>
				<avrf:trace>OPENGL32!wglDescribePixelFormat+a2 ( @ 0)</avrf:trace>
				<avrf:trace>OPENGL32!wglChoosePixelFormat+3e ( @ 0)</avrf:trace>
				<avrf:trace>GDI32!ChoosePixelFormat+28 ( @ 0)</avrf:trace>
				<avrf:trace>RenderSystem_GL_d!Ogre::Win32GLSupport::initialiseWGL+1fa (c:\builds\ror-dependencies-upstream-dbg\source\ogre\rendersystems\gl\src\win32\ogrewin32glsupport.cpp @ 524)</avrf:trace>
Background of my research: https://github.com/RigsOfRods/rigs-of-rods/issues/1366 - multiple people (mostly Linux users) experienced heap problems recently.

Test system:
-- Windows7 Professional 64-bit, service pack 1
-- Visual Studio 2015, version 14.0.23107.0
-- 16GB RAM
-- Graphics card: AMD RadeonHD 6350 (driver version: 8.922.0.0)
-- Dependencies built from: https://bitbucket.org/cabalistic/ogrede ... 0f9d04.zip
-- OGRE built from: HG_REPOSITORY https://bitbucket.org/sinbad/ogre HG_TAG v1-9 (from our CMake scripts at: https://github.com/RigsOfRods/ror-dependencies)
-- Test application = my OGRE testbed project: https://github.com/only-a-ptr/ogre-imgu ... pt-testing

OGRE + dependencies were built on the same machine, I'm attaching CMake files.

I'd like to research further but I won't have time until 27.8.