|
Doc Text:
|
_valgrind_ rebased to version 3.11.0
Valgrind is an instrumentation framework that is used for debugging memory, detecting memory leaks, and profiling applications. The package has been upgraded to upstream version 3.11.0. Highlighted improvements include:
* The JIT's register allocator is now significantly faster, making JIT-intensive activities, for example program startup, approximately 5% faster.
* Intel AVX2 support is now more complete for 64-bit targets. On AVX2-capable hosts, the simulated CPUID will now indicate AVX2 support.
* The default value for the *--smc-check* option has been changed from `stack` to `all-non-file` on targets that provide automatic D-I cache coherence. The result is to provide, by default, transparent support for JIT generated and self-modifying code on all targets.
Highlighted new features in the *Memcheck* utility include:
* The default value for the *--leak-check-heuristics* option has been changed from `none` to `all`. This helps to reduce the number of possibly lost blocks, in particular for C++ applications.
* The default value for the *--keep-stacktraces* option has been changed from `malloc-then-free` to `malloc-and-free`. This has a small cost in memory but allows *Memcheck* to show the 3 stack traces of a dangling reference: where the block was allocated, where it was freed, and where it is accessed after being freed.
* The default value for the *--partial-loads-ok* option has been changed from `no` to `yes`, to avoid false-positive errors resulting from certain vectorised loops.
* A new gdb monitor command "xb [addr] [len]" shows the validity bits of `[len]` bytes at `[addr]`. The monitor command "xb" is easier to use than *get_vbits* when you need to associate byte data value with their corresponding validity bits.
* The "block_list" gdb monitor command has been enhanced: it can print a range of loss records; it now accepts an optional argument, `limited [max_blocks]`, to control the number of printed blocks; if a block has been found using a heuristic, then "block_list" now shows the heuristic after the block size; the loss records/blocks to print can be limited to the blocks found via specified heuristics.
* A new *--expensive-definedness-checks=yes|no* command-line option has been added. This is useful for avoiding occasional invalid uninitialized-value errors in optimized code. Beware of potential runtime degradation, as this can be up to 25%. The slowdown is highly application-specific though. The default value is `no`.
|