CXXR (C++ R) API
|
Go to the source code of this file.
Macros | |
#define | VALGRIND_LEVEL 0 |
#define | NVALGRIND |
#defines relating to the use of valgrind. CXXR uses environment variables to manage valgrind instrumentation, rather than having this controlled by the configure
script. If the NVALGRIND
environment variable is defined, all valgrind instrumentation is suppressed; otherwise, the instrumentation level is controlled by the environment variable VALGRIND_LEVEL
, as follows:
Level 0 is no additional instrumentation; this is the default.
Level 1 marks as uninitialized newly-created numeric, logical, and integer vectors, and R_alloc()/S_alloc() memory. This level is aimed primarily at enabling users of R (including writers of imported code) to detect use of uninitialized data.
Level 2 marks free memory within CellPools as inaccessible, and the contents of newly allocated blocks from CellPools as uninitialised. This provides further protection against array overruns and the use of stale pointers.
VALGRIND_LEVEL > 2
but does not document its meaning. It may be necessary to define NVALGRIND
for a non-gcc compiler on a supported architecture if it has different syntax for inline assembly language from gcc.
For Win32, Valgrind is useful only if running under Wine,