Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Checking Run-Time Library Functions

The pointer checker is not supported on macOS systems.

The pointer checker provides checking on C run-time library functions that manipulate memory through pointers. It uses a library of functions that either replace the run-time library function, or wrap them with the appropriate pointer checking mechanisms.

For functions that allocate memory, such as the malloc() function or various C++ new functions, the wrapper function create bounds information for the pointers returned by the memory allocator.

For functions that copy memory, such as the memcpy() function, the memory address may contain the pointers along with their associated bounds information. The wrapper functions check for out-of-bounds accesses and ensure that any bounds associated with the copied memory are also copied.

The point checker C run-time function wrappers are located in the libchkpwrap library. To determine which C run-time routines are wrapped, you can examine the entry points in the library. For example, the following will yield a list of entry points:

Example

// Linux*
  % nm libchkpwrap.a | egrep 'T __chkp_'
// Windows* (x86)
  dumpbin /symbols libchkpwrap.lib | egrep 'SECT.*External.*
  [_]*__chkp_' 

The returned list will include entry points that signify wrappers. For example, __chkp_strcpy is the wrapper for strcpy.