[vtkusers] Memory leak I cant understand: Detected memory leaks! Dumping Objects ->
David Cole
david.cole at kitware.com
Thu May 10 08:54:18 EDT 2007
False memory leak reports are caused by VTK dlls loading *before* MFC dlls.
You have to use the linker's /delayload flag to avoid this issue.
The /delayload flag should be correct by default in the MFC examples if you
are using CVS VTK... If you are using a previous version of VTK (5.0 or
earlier) then you will have to figure out a way to link with that flag.
See the CVS version of files in VTK/GUISupport/MFC for details. Or grep the
VTK source tree for "DELAYLOAD"
HTH,
David
On 5/10/07, Marcus Wilkinson <wilkinsonmarcus at gmail.com> wrote:
>
> Hi All,
>
> I have limited experience with VTK, but from what I know about memory
> management, I should be getting no memory leaks at all in my application at
> all.
> I have 2 DLL's, one containing my main sound analysis program and another
> holding VTK code for visualisation.
> Sound.dll loads Visualisation.dll via a call to LoadLibrary("
> Vlisualisation.dll");
>
> Inside Visualisation.dll, I have a class "CVisualisationApp", which is
> instantiated by static functions in the Visualisation.dll such as
> "CreateSystem(), DestroySystem() etc". These static functions are called
> externally by Sound.dll. This CVisualisationApp class holds all references
> to VTK objects and extends CWinApp - it also holds the render function and
> handles all UI basically. There are no calls to VTK elements outside of this
> class.
>
> This CVisualisationApp class is instantiated by one of the static
> functions {"CreateSystem()"} which just does:
> theApp = new CVisualisationApp();
>
> so basically, by Visualisation.h looks something like this:
>
> class CVisualisationApp : public CWinApp
> {
> public:
> CVisualisationApp();
> ~CVisualisationApp();
>
> public:
> virtual BOOL InitInstance();
> BOOL Render(double dt);
> //more functions and fun
> }
>
> and my Visualisation.cpp looks a bit like this:
>
> CVisualisationApp *theApp = 0;
>
> extern "C" __declspec( dllexport )
> int __cdecl createSystem() {
> if (theApp != 0)
> return 0;
> theApp = new CVisualisationApp();
> theApp->InitInstance();
> return 1;
> }
>
> CVisualisationApp::CVisualisationApp()
> {
> //Instantiation stuff
> }
>
> CVisualisationApp::InitInstance()
> {
> //Initialisation stuff
> }
>
>
> Now my problem is that even if I don't create the 'theApp' object (comment
> out the body of the createSystem() function), I still get memory leaks from
> VTK. I guess my question is, could VTK detect memory leaks from my main
> sound.dll app (although I don't think there are any leaks there) - or,
> does vtk have some static functions that could be causing memory leaks even
> though I don't create any objects. The output dump looks something like
> this:
>
>
> Detected memory leaks!
> Dumping objects ->
> {32407} normal block at 0x0B70B070, 4 bytes long.
> Data: <PWh > 50 57 68 0B
> {32406} normal block at 0x0C996730, 8 bytes long.
> Data: <@f > 40 66 99 0C 00 00 00 00
> {32405} normal block at 0x0C997A38, 21 bytes long.
> Data: <System Shutting > 53 79 73 74 65 6D 20 53 68 75 74 74 69 6E 67 20
> {32404} normal block at 0x0C997980, 120 bytes long.
> Data: <\ p # > 5C 9F 70 0A 01 00 00 00 00 CD CD CD 23 03 02 00
> {32368} normal block at 0x0C9971D8, 168 bytes long.
> Data: < > CC B9 8F 09 01 00 00 00 00 CD CD CD 17 03 02 00
> {32367} normal block at 0x0C9970F0, 168 bytes long.
> Data: < > CC B9 8F 09 01 00 00 00 00 CD CD CD 15 03 02 00
> {32366} normal block at 0x0C997008, 168 bytes long.
> Data: < 6 > CC B9 8F 09 02 00 00 00 00 CD CD CD 36 03 02 00
> {32365} normal block at 0x0C996640, 176 bytes long.
> Data: < 2r ( > A4 32 72 0A 01 00 00 00 00 CD CD CD 28 03 02 00
> {32364} normal block at 0x0C996588, 120 bytes long
> {{{ Pages and pages more }}}
>
>
> Thanks in advance for any thoughts you have - feel like my brain is
> melting on this one. If you need, I can provide a list of libs and include
> files.
>
> Marcus
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20070510/4265604f/attachment.htm>
More information about the vtkusers
mailing list