Valgrind

The recommended installation method is FreeBSD Ports & Packages.

Valgrind aarch64

Valgrind has been ported to aarch64. The code has been pushed upstream. Updating the devel/valgrind-devel port is underway. The port is close to fully functional - there are occasional errors related to static variables and thread creation.

To use this you will have to build it from source.

Then follow the instructions in the 'Building' section below.

Installation

Note: There may be some differences or delays between binary package versions and port versions, depending on whether you use Quarterly or Latest package branch.

Stable Version

The devel/valgrind port follows the official Valgrind release cycle, which is roughly aligned with the RedHat Fedora release cycle, with bi-annual releases targeted for April and October.

Install using either:

Development Version

The devel/valgrind-devel port will install a version of Valgrind that is tracking the upstream git repository, and is updated if/when there are sufficient fixes between official Valgrind releases.

Install using either:

Building from Source

Pre-Requisites

Building valgrind requires the following ports to be installed:

Obtaining the Valgrind Source

Starting with Valgrind 3.18.1 FreeBSD support has been integrated into the main Valgrind codebase. Prior to 3.18.1 (though still maintained) the source was hosted on on GitHub

To check out pre-3.18.1 versions of the source:

The mercurial bitbucket repo that was the basis of the FreeBSD Valgrind port up to 3.17 is no longer accessible.

Building

TODO

  1. Improve ioctl checking. At present there is very little checking of ioctl memory accesses. This will also require a significant improvement in the test coverage.

    1, Implement a FreeBSD fair scheduler. Linux has a futex based scheduler. It uses come GCC __sync builtins (also available with clang). And a couple of syscalls for futex. Shouldn't be too hard to port to use _umtx_op.

  2. Implement rfork.
  3. Improve vgdb-invoker.
  4. Implement some form of lldb-server.
  5. Improve core dumps. Currently they are just Linux style core dumps with a FreeBSD tag.
  6. Add freeres support to libc FreeBSD Bugzilla Issue #259294

  7. Much needs to be done for Clang OMP.
  8. Fix handling of thread TLS allocation for Helgrind.

Valgrind (last edited 2024-04-17T10:56:24+0000 by PaulFloyd)