  Tools for algorithmic differentiation (AD) provide accurate derivatives of
computer-implemented functions for use in, e. g., optimization and machine
learning (ML). However, they often require the source code of the function to
be available in a restricted set of programming languages. As a step towards
making AD accessible for code bases with cross-language or closed-source
components, we recently presented the forward-mode AD tool Derivgrind. It
inserts forward-mode AD logic into the machine code of a compiled program using
the Valgrind dynamic binary instrumentation framework. This work extends
Derivgrind, adding the capability to record the real-arithmetic evaluation
tree, and thus enabling operator overloading style reverse-mode AD for compiled
programs. We maintain the high level of correctness reported for Derivgrind's
forward mode, failing the same few testcases in an extensive test suite for the
same well-understood reasons. Runtime-wise, the recording slows down the
execution of a compiled 64-bit benchmark program by a factor of about 180.
