The Library Analysis Tool (LAT) from Validas

Overview

Make library usage transparent, safe, and easy to manage.

The Library Analysis Tool (LAT) by Validas automatically analyzes which library functions your software uses, directly during compilation and without changing any source code.

LAT gives you full visibility into your software’s call graph while your build runs as usual. No disruption, no changes to your output.

Just deeper insight into what your code actually does.

Software insights without touching your build

Modern software systems are complex. Understanding dependencies, call hierarchies, and software boundaries is essential both for safety and compliance and for long-term maintainability.

LAT provides this insight automatically.

  • Integrates transparently into existing build systems

  • Requires no changes to build artefacts

  • Generates call graph data during compilation

  • Tracks scope changes continuously

Know which library functions really matter

During compilation, LAT analyzes the use of library functions within your software and records how they are referenced throughout the codebase. The resulting call graph provides a clear view of function dependencies and helps identify components that may require further assessment or qualification.

In short: LAT helps you understand which library functions are used in your system, where they are used, and whether they require consideration in a safety context.

How the Library Analysis Tool works

LAT acts as a compiler wrapper that sits in front of your existing toolchain. During compilation, it performs static call graph analysis and generates .frt files alongside the usual object files, without modifying the build process or its outputs.

LAT is available in two variants: LAT GCC and LAT Clang. Each uses a dedicated analysis backend, while the backend compiler can be configured independently, for example as g++, clang++, or QNX q++.

How LAT GCC works

  1. lat-gcc is placed in front of the real compiler (g++)

  2. For every compilation it invokes the real compiler normally — the build output is identical

  3. It also runs original2frt on the same source to produce a .frt call-graph file

  4. In the Lat-Pro and Lat-Expert editions, the Scope Checker in lat-modules compares the scope list against a baseline after each compilation

How LAT Clang works

  1. lat-clang is placed in front of the real compiler (clang++)

  2. For every compilation it invokes the real compiler normally — the build output is identical

  3. It also runs lat_clang_bin on the same source to produce a .frt call-graph file

  4. In the Lat-Pro and Lat-Expert editions, the Scope Checker in lat-modules compares the scope list against a baseline after each compilation

Components of LAT

The Library Analysis Tool (LAT) consists of several components that are delivered together as part of an edition:

  • lat-gcc: Compiler wrapper and build driver used in the build system.

  • original2frt: Core static analysis engine that generates .frt call graph files.

  • lat-modules: Build extensions for exclude-list management in all editions, with additional scope-monitoring capabilities in the Pro and Expert editions.

  • lat-scope:Utility for creating, comparing, and analyzing scope lists derived from .frt files.

  • frt-sql (Expert Edition): Imports .frt files into a SQLite-based call graph database.

  • lat-users (Expert Edition): Query tool for analyzing and exploring call graph data stored in the SQLite database.

Turn hidden dependencies into actionable insight. Learn how LAT works in practice.