Checking for ABWL and FMWL errors

By default, Memory Profiling checks for ABWL and FMWL errors whenever the routines are called, or whenever the free queue is actually flushed.

In some cases, it might be desirable to manually specify when to check for ABWL and FMWL errors, and on which functions.

By using the ABWL and FMWL check frequency setting you can order a check on:

  • Each time the memory is dumped (by default).

  • Each time a manual check macro is encountered in the code.

  • Each function return.

The checks can be performed either on all memory blocks or only a selection of memory blocks.

Specifying a manual check

To indicate where you want an ABWL or FMWL check to occur in your source code, you insert an _ATP_CHECK() macro at the corresponding location. The syntax for the macro is:

#pragma attol insert _ATP_CHECK(@RELFLINE)

Each time this macro is encountered during execution, Memory Profiling checks for ABWL and FMWL errors on the specified blocks. The @RELFLINE parameter allows navigation from the Memory Profiling report to the corresponding line in the source code.

Selecting blocks to check

To create a selection of blocks that you specifically want to verify, you create a list in your source code using the _ATP_TRACK() macro variable. The syntax for this macro is:

#pragma attol insert _ATP_TRACK(<pointer>)

Example

A sample demonstrating how to use this feature is provided in the ABWL Check Frequency example project. See Example projects for more information.

Related Topics

Memory Profiling Settings | Late Detect Free Memory Write (FMWL) | Late Detect Array Bounds Write (ABWL)