ضمنا debugger خود ++visual C امکاناتی دارد که برای یافتن memory leak حتما از ان ها استفاده کنید.
در شروع برنامه در قسمت main ، یا در قسمت شروع یک thread کد زیر را بنویسید:
#if defined(DEBUG) | defined(_DEBUG)
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#endif
تابع CrtSetDbgFlag را در MSDN چک کنید تا سایر فلگ ها را مشاهده کنید.
_CRTDBG_LEAK_CHECK_DF برای چک کردن memory leak هست، یعنی هرگاه برنامه را ببندید (در حالت اجرا debug) کامپایلر به شما می گوید که کدام بخش از حافظه را تخصیص داده اید ولی خودتان آزاد نکرده اید.
دقت کنید در پنجره Output بعد از خروج از برنامه عبارت Detected memory leaks! نوشته می شود و سپس Dumping objects نشان داده می شود. مثلا اگر یک اشاره گر باشد که Int را اختصاص می دهد، به شکل زیر نوشته می شود:
Detected memory leaks!
Dumping objects ->
{1036} normal block at 0x00EC32A8, 4 bytes long.
Data: < > 00 00 10 00
{1035} normal block at 0x00EC3268, 4 bytes long.
Data: < > 00 00 10 00
{1034} normal block at 0x00EC3228, 4 bytes long.
.......