Developer Guide and Reference

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
.