NEWS
* New features and improvements in DRD:
- The error messages printed by DRD are now easier to interpret.
Instead of using two different numbers to identify each thread
(Valgrind thread ID and DRD thread ID), DRD does now identify
threads via a single number (the DRD thread ID).
Furthermore
"first observed at" information is now printed for all error
messages related to synchronization objects.
- Added support for named semaphores (sem_open() and sem_close()).
- Race conditions between pthread_barrier_wait() and
pthread_barrier_destroy() calls are now reported.
- Added support for custom allocators through the macros
VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in
in <valgrind/valgrind.h>). An alternative for these two macros is
the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in
<valgrind/drd.h>).
- Added support for annotating non-POSIX synchronization objects
through several new ANNOTATE_*() macros.
- OpenMP: added support for the OpenMP runtime (libgomp) included
with gcc versions 4.3.0 and 4.4.0.
- Faster operation.
- Added two new command-line options (--first-race-only and
--segment-merging-interval).
* Genuinely atomic support for x86/amd64/ppc atomic instructions
Valgrind will now preserve (memory-access) atomicity of LOCK-
prefixed x86/amd64 instructions, and any others implying a global
bus lock.
Ditto for PowerPC l{w,d}arx/st{w,d}cx. instructions.
This means that Valgrinded processes will "play nicely" in
situations where communication with other processes, or the kernel,
is done through shared memory and coordinated with such atomic
instructions.
Prior to this change, such arrangements usually
resulted in hangs, races or other synchronisation failures, because
Valgrind did not honour atomicity of such instructions.
* A new experimental tool, BBV, has been added.
BBV generates basic
block vectors for use with the SimPoint analysis tool, which allows
a program’s overall behaviour to be approximated by running only a
fraction of it.
This is useful for computer architecture
researchers.
You can run BBV by specifying --tool=exp-bbv (the
"exp-" prefix is short for "experimental").
BBV was written by
26