crabgrind 0.2.5

Rust bindings to "Valgrind Client Request" interface
Documentation
# DRD(Data Race Detector) Client Requests

Interface to [DRD Client Requests][vg-docs] defined in `valgrind/drd.h`.

DRD is a Valgrind tool that detects data races in multithreaded programs by
shadowing every memory access. It tracks the synchronization state of threads.

Client requests allow the program to influence DRD's analysis when static
instrumentation is insufficient. They are primarily used to:

- *Suppress false positives:* Identify intentional races or benign
  unsynchronized accesses (e.g., lock-free counters or statistics).
- *Debug specific regions:* Trace activity on individual variables or memory
  ranges to pinpoint the origin of complex races.
- *Describe custom logic:* Annotate custom memory allocators or custom
  synchronization primitives that DRD does not natively recognize.

## Usage

Nothing happens unless the binary runs under DRD:

> ```text
> :~$ cargo build
> :~$ valgrind --tool=drd target/debug/app
> ```

## Version Requirements

- **Minimum Valgrind:** `3.3`
- **Recommended Valgrind:** `3.5` or higher to use any of DRD requests

[vg-docs]: https://valgrind.org/docs/manual/drd-manual.html#drd-manual.clientreqs