There are a small set of cases where Memory Validator can be extended by user supplied DLLs:
•custom display of data associated with custom heap allocations
•notification of entry/exit for constructor and destructors
•handling of commands sent by the user via Memory Validator
User interface extensions affect data collected by the family of custom heap tracking functions in the API.
The data is displayed by Memory Validator using your own custom message format defined in the extension DLL.
A simple example of a ui extension DLL is provided with Memory Validator.
Stub extensions allow custom code to be executed at the start and end of each constructor and destructor that is called in the target program.
These extension functions are provided with:
•a 'this' parameter identifying the object being constructed or destructed
•a function address
•a function name
The stub extension DLL may choose to store the data in an internal store etc.
Stub extension DLLs also allow for a (char*) command to be sent from Memory Validator by the user to one or all stub extension DLLs.
The extension DLL may act on the command as it wishes.
A simple example of a stub extension DLL is provided with Memory Validator.
You should ensure that UI and stub extension DLLs don't have memory leaks or access violations for example, as these will prevent Memory Validator from working correctly.