Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detected memory leaks

In my wxWidgets application, while running in debug mode i got this message in Output of Visual Studio 2010. The application ran fine, and i only saw this after closing it.

Detected memory leaks!

Dumping objects ->

{9554} normal block at 0x003CDCC0, 44 bytes long.
Data: < e n d > 20 C1 65 01 01 00 00 00 6E 00 00 00 9C CE 64 01

{9553} normal block at 0x003CDB58, 8 bytes long.

Data: < D e < > 44 BD 65 01 C0 DC 3C 00
{9552} normal block at 0x003CDC50, 48 bytes long.

Data: < e > A0 95 65 01 01 00 00 00 19 00 00 00 19 00 00 00

Object dump complete.

In my program i am not explicitly allocating memory, however the wxWidgets framework is. I have got such a message for first time, and don't know the exact cause of it.

How can i get rid of this memory leak?

like image 244
Vinayak Garg Avatar asked Dec 17 '11 10:12

Vinayak Garg


1 Answers

You just have to add the following lines at the beginning of your main function. Adding this flag, Visual Studio will break at the line that is creating the memory leak.

    _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
    _CrtSetBreakAlloc(9554);
    _CrtSetBreakAlloc(9553);
    _CrtSetBreakAlloc(9552);

Make sure you have the correct object normal block address because they might change and ensure you are compiling on _DEBUG.

See also: _CrtSetDbgFlag and _CrtSetBreakAlloc.

like image 167
mihaipopescu Avatar answered Oct 03 '22 21:10

mihaipopescu