the Chromium logo

The Chromium Projects

Instrumented libraries for dynamic tools

Instrumented libraries are a part of Chromium's development infrastructure. They are intended to complement sanitizer tools (AddressSanitizer, MemorySanitizer, ThreadSanitizer).

Only Ubuntu Trusty x86_64 is supported at this time.

Overview

Sanitizer tools rely on compile-time instrumentation. However, Chromium code may call into system-installed third-party shared libraries, which were not built with the appropriate instrumentation. This is a problem:

To avoid this issue, we've made it possible to make Chromium use sanitizer-instrumented versions of third-party DSOs. By setting a GN flag, you can either have them built from source during Chromium build, or download pre-built binaries from Google Storage. The list contains ~50 third-party packages, which should cover most of the DSO dependencies of Chrome and tests (enough at least to run MSan without bogus reports).

Using pre-built binaries

Follow the MemorySanitizer instructions.

Note that we don't provide pre-built binaries for every configuration. At this point in time only MSan is supported, with msan_track_origins either 0 or 2.

Building from source

Instructions for rebuilding instrumented libraries.

Adding new packages

You'll need to ping earthdok@ or glider@ to do this. The information below is for reference.

To add a new package, you need to do the following:

Usually you want to use the same configure flags that debian/rules uses.

To rebuild the binaries, follow the instructions for Building from source.