Toon posts:

[Win32/C++] Meten mem-usage tbv Memory Leaks *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo iedereen,

Weet iemand hoe ik het beste/makkelijkst binnen een zelf geprogrammeerde Win32 applicatie (Visual C++) het heap-memory gebruik kan bepalen? We willen graag weten wat een bepaalde actie 'vreet' aan memory, hiertoe willen we meten voor- en na de bewuste actie.

Is hiervoor een bruikbare Win32 System Call?
Andere suggesties?

Achtergrond:
Het gaat om embedded software (500.000 regels), gemengde nieuw en bestaande modules, waarin een memory leak is geslopen. Deze is bijna niet te localiseren. Nu had ik er al eens een Win32 wrapper er omheen gemaakt, zodoende de code te kunnen ontwikkelen/testen vanaf Developer Studion (Visual C++). Ook ga ik er binnenkort BoundsChecker overheen halen.

Alvast bedankt,

EiSl

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Je kunt de global operators new, new[], delete en delete[] overloaden. Mocht je malloc/realloc/free gebruiken kun je deze vervangen door bijv. de volgende macro's:
C++:
1
2
3
4
5
6
7
#ifdef __LOOKFORMEMORYLEAKS
static int   g_AllocatedMemory;
inline int MyAllocFunc(p_Amount)
{ g_AllocatedMemory += p_Amount; return malloc(p_Amount; }
#else
#define MyAllocFunc malloc
#endif

Enzovoorts voor de anderen.

Als je COM gebruikt moet je eens zoeken op IMallocSpy in MSDN.

Professionele website nodig?


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Er zijn ook vele programma's die dat voor je doen en beter inzichtelijk weten te maken dan op deze manier. Zoals bijvoorbeeld:
- QTime: http://www.automatedqa.com/products/aqtime.asp
- Bounds Checker: http://www.compuware.com/products/devpartner/bounds.htm

We adore chaos because we like to restore order - M.C. Escher