The following sections describe how to trace memory management functions with AQtime:
The Allocation profiler tracks functions that allocate or de-allocate memory. Applications work with memory using functions of two types: system memory management functions (Windows API functions) or functions of the runtime memory manager, which is part of a certain runtime library. For information on profiling runtime memory manager functions, see the topics listed in the See Also section.
The profiler always traces calls to functions of the runtime memory manager. As for calls to system memory management functions, they are traced only if the profiler’s Check system memory allocations option is enabled. By default, this option is disabled. If you enable it, the profiler will trace calls to the following Windows API functions that allocate and de-allocate memory:
Memory blocks that were allocated by system memory management functions and not disposed at the end of the application run are reported under specific class names (with a complete call stack for each leaked block).
The following table shows how traced memory management functions are represented in the Report panel:
|Committed Virtual Memory
Reserved Virtual Memory
|Global heap||GlobalAlloc, GlobalFree, GlobalReAlloc, PrintDlgA, PrintDlgW, ReleaseStgMedium, SetClipboardData|
|Heap||HeapAlloc, HeapCreate, HeapDestroy, HeapFree, HeapReAlloc|
|Heap memory||VirtualAlloc, VirtualFree|
|Local heap||CommandLineToArgvW, FormatMessageA, FormatMessageW, LocalAlloc, LocalFree, LocalReAlloc|
Allocation Profiler - Analyzing Visual C++ Applications
Allocation Profiler - Analyzing Delphi Applications
Allocation Profiler - Analyzing C++Builder Applications
Allocation Profiler - Analyzing Visual Basic 6.0 Applications
Allocation Profiler - Analyzing Intel C++ and Borland C++ Applications