NEWS
useful for giving a general idea about a program’s locality.
* Massif has a new option, --pages-as-heap, which is disabled by
default.
When enabled, instead of tracking allocations at the level
of heap blocks (as allocated with malloc/new/new[]), it instead
tracks memory allocations at the level of memory pages (as mapped by
mmap, brk, etc).
Each mapped page is treated as its own block.
Interpreting the page-level output is harder than the heap-level
output, but this option is useful if you want to account for every
byte of memory used by a program.
* DRD has two new command-line options: --free-is-write and
--trace-alloc.
The former allows to detect reading from already freed
memory, and the latter allows tracing of all memory allocations and
deallocations.
* DRD has several new annotations.
Custom barrier implementations can
now be annotated, as well as benign races on static variables.
* DRD’s happens before / happens after annotations have been made more
powerful, so that they can now also be used to annotate e.g. a smart
pointer implementation.
* Helgrind’s annotation set has also been drastically improved, so as
to provide to users a general set of annotations to describe locks,
semaphores, barriers and condition variables.
Annotations to
describe thread-safe reference counted heap objects have also been
added.
* Memcheck has a new command-line option, --show-possibly-lost, which
is enabled by default.
When disabled, the leak detector will not
show possibly-lost blocks.
* A new experimental heap profiler, DHAT (Dynamic Heap Analysis Tool),
has been added.
DHAT keeps track of allocated heap blocks, and also
inspects every memory reference to see which block (if any) is being
accessed.
This gives a lot of insight into block lifetimes,
utilisation, turnover, liveness, and the location of hot and cold
fields.
You can use DHAT to do hot-field profiling.
* ==================== OTHER CHANGES ====================
* Improved support for unfriendly self-modifying code: the extra
overhead incurred by --smc-check=all has been reduced by
approximately a factor of 5 as compared with 3.5.0.
* Ability to show directory names for source files in error messages.
This is combined with a flexible mechanism for specifying which
parts of the paths should be shown.
This is enabled by the new flag
--fullpath-after.
* A new flag, --require-text-symbol, which will stop the run if a
specified symbol is not found it a given shared object when it is
loaded into the process.
This makes advanced working with function
17