Please enable JavaScript to view this site.

Memory Validator Help

The C Runtime Setup tab allows you to control whether hooking of statically linked applications is enabled, or even specify a custom CRT build

 

seeAlsoRead more about dynamic and statically linked CRT libraries, map fles, and related compiler options in the before you start section.

 

note Note that where possible, we recommend that you link your program with the dynamic C runtime library for use with Memory Validator.

 

 

c-runtime-setup-settings

 

 

 

Statically linked C Runtime Hooks

 

Just to reiterate from above: when monitoring programs written with Microsoft Visual Studio, the best performance is achieved when those programs are dynamically linked to the C runtime libraries.

 

For applications built using the statically linked C runtime libraries, support is provided by using the debugging symbol table to locate the functions.

 

Enable hooking of statically linked applications (.EXE and .DLL) instructionStep enables use of the static C runtime library support (the default)

 

 

Caveats with using statically linked C runtime libraries

 

When running Memory Validator with applications using statically linked C runtime libraries:

 

Buffer overrun detection is not available
 

Buffer underrun detection is not available
 

For release builds using the statically linked C runtime library, Microsoft do not emit symbols for all memory allocators/deallocators - making it impossible to monitor them in such builds
 

Performance of applications will be slower, since the hooking mechanism is more complex

 

 

Requirements for using statically linked C runtime libraries

 

Using Microsoft?

 

For Microsoft runtimes, we always use the PDB file where possible, only using a map file if no PDB file containing symbols is available.

 

In the event PDB files are not available, you'll need to generate a map file for each statically linked DLL/EXE that you wish to monitor. The map file must have the same name as the DLL/EXE with the extension ".map". For example, if you are building the DLL "example.dll", the map file name should be "example.map".

 

Using Borland Dephi, Borland C++?

 

This topic does not apply. Memory Validator can handle statically linked applications correctly. Just ensure you create appropriate TDS symbols and detailed map files.

 

Using Metrowerks C/C++, Visual Basic, or Fortran95?

 

This topic does not apply.

 

 

Custom CRT DLL

 

If you have rebuilt your Microsoft C Runtime DLLs, you can specify the names (just names, no path) of the Debug and Release DLLs in the two fields provided.

 

 

Reset All - Resets all global settings, not just those on the current page.

 

 

Reset - Resets the settings on the current page.