# 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.

Parent topic: Using the Pointer Checker