Tracking memory leaks with _afxBreakAlloc
Marty Wagner -- marty@concentra.com Wednesday, February 07, 1996 How do you track down memory leaks with _afxBreakAlloc?? I found the VC++ knowledge base article Q122307 in the January 96 MSDN. It explains a great way to break on a particular memory leak. It would be very useful for the memory leaks that we have, where we know the file that they are appearing in but we can't figure out why they are leaking. However, the article's instructions don't work as advertised. The article says to set a breakpoint in the function AfxAllocMemoryDebug in the file AFXMEM.CPP. I did that, but the breakpoint was never reached. When I looked at the MFC browse file, I found that AfxAllocMemoryDebug is, in fact, never called. Has anyone used this technique successfully in VC++ 4.0? Please let me know if you have!!! -- Marty Wagner Concentra Corporation 21 North Avenue Burlington MA 01803-3301 (617) 229-4640 marty@concentra.com ---------------------------------------------------------- | "Does the chicken need a reason?" | ----------------------------------------------------------
Mike Blaszczak -- mikeblas@interserv.com Thursday, February 08, 1996 [Mini-digest: 4 responses] On Wed, 7 Feb 1996, Marty Wagnerwrote: >How do you track down memory leaks with _afxBreakAlloc?? At a cursory glance, that sounds like a bug in MFC. Maybe I can go into work and improve the load time of MFC42.DLL by one tenth of one thousandth of one percent by removing it. .B ekiM -- TCHAR szDisc[] = _T("These words are my own; I do not speak for Microsoft."); -----From: "Mukesh Prasad [Development Contractor]" AfxAllocMemoryDebug was used for debug allocations until 2.1. But looks like they have made changes in 4.0 to allow memory debugging for "malloc"s as well, in addition to what they had, which only worked for "new"s. If you know the "request number" for your memory leak, you should be able to use "AfxSetAllocStop( request_number )" to set the stop. -----From: Mike Martonfi Try CrtSetBreakAlloc(), instead. -----From: MARGHAL@gw2k.com _afxBreakAlloc is not supported in VC++ 4.0. (I believe it was removed as part of the memory allocation overhaul in MFC 4.0) Use _crtBreakAlloc instead. See the Runtime Libary Reference article "Tracking Heap Allocations" for more information. The documentation on _afxBreakAlloc that comes with VC++ 4.0 needs to have a pointer to the _crtBreakAlloc documentation. Al Margheim x27108
| Вернуться в корень Архива |