Memory corruption occurs when using
memcpy and IBM® Rational® Purify® on some Solaris® machines. Some characters or data are replaced with ASCII character 255, which in most fonts looks like a lower-case y with an umlaut (two dots) over it: ÿ.
This problem occurs when the version of memcpy that comes from libc_psr.so.1 has been instrumented.
Resolving the problem
The library itself is an auxiliary library, meaning that it is optional, and provides optimised, sometimes hand-coded functional replacements for many memory functions defined in libc.so.1, including the memcpy function.
The version of memcpy from libc_psr.so.1 is not supported with Purify.
To resolve this issue, follow these steps:
- Specify the -PROCESS_DT_AUX_ENTRIES=false switch either on the Purify command
line or in the PURIFYOPTIONS environment variable.
- After specifying the switch, rebuild the binary under test with Purify to ensure that the libc library has been instrumented correctly without auxiliary dependencies.
The - PROCESS_DT_AUX_ENTRIES=false switch creates an instrumented application that makes no reference at all to libc_psr.so.1.