Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Valgrind port to 64 bit ARMv8 is now available for testing
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Valgrind port to 64 bit ARMv8 is now available for testing

Julian Seward
Julian Seward
April 15, 2014
1 minute read time.

Valgrind is a GPL'd framework for building simulation based debugging and profiling tools.  The best known of these is Memcheck, a memory error detector, but in fact it is only one of eight tools in the standard distribution: two memory checkers, two thread checkers, two performance profilers and two space profilers.

The Valgrind trunk sources now contain a port to 64 bit ARMv8.  The port has reached a stage of being useful for real debugging, and, in turn, could do with wider testing.

Memcheck works and has a noise (false-error) level that is comparable with other targets.  All the basic functionality -- detection of uninitialised value uses, detection of invalid memory accesses, detection of leaks, and origin tracking -- is available.  Other tools -- Lackey, Cachegrind, Callgrind, Massif, DRD and Helgrind -- work to some extent, but have not been extensively tested.

Current limitations are:

  • Incomplete support of vector (SIMD) instructions.  Anything created by gcc-4.8.2 -O3, including SIMD code from autovectorization, works.  Completion of SIMD support is ongoing.
  • Incomplete syscall support.  Enough system calls are supported for large programs to work, but some are still unsupported.
  • Integration with the built in GDB server is incomplete.

There has been extensive testing of the supported integer, FP and SIMD instructions.  At least one large application -- Firefox 26 -- is able to start up and quit.  The port is under active development and will ship as part of the next release, Valgrind 3.10.

In general, if you have used Valgrind on 32 bit ARMv7 or other targets, you should find this new port very little different.

You can get hold of the trunk sources via Subversion, using the URL svn://svn.valgrind.org/valgrind/trunk.  See README.aarch64, at the root of the source tree, for instructions on how to build and run the port.

If you have questions or difficulties, feel free to mail our users or developers mailing lists, as described at http://www.valgrind.org/support/mailing_lists.html.  Bugs may be reported at https://bugs.kde.org/enter_bug.cgi?product=valgrind&format=guided.

Anonymous
Architectures and Processors blog
  • When a barrier does not block: The pitfalls of partial order

    Wathsala Vithanage
    Wathsala Vithanage
    Acquire fences aren’t always enough. See how LDAPR exposed unsafe interleavings and what we did to patch the problem.
    • September 15, 2025
  • Introducing GICv5: Scalable and secure interrupt management for Arm

    Christoffer Dall
    Christoffer Dall
    Introducing Arm GICv5: a scalable, hypervisor-free interrupt controller for modern multi-core systems with improved virtualization and real-time support.
    • April 28, 2025
  • Getting started with AARCHMRS Features.json using Python

    Joh
    Joh
    A high-level introduction to the Arm Architecture Machine Readable Specification (AARCHMRS) Features.json with some examples to interpret and start to work with the available data using Python.
    • April 8, 2025