// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

[[debugging-buildroot]]

== Debugging Buildroot

It is possible to instrument the steps +Buildroot+ does when building
packages. Define the variable +BR2_INSTRUMENTATION_SCRIPTS+ to contain
the path of one or more scripts (or other executables), in a
space-separated list, you want called before and after each step. The
scripts are called in sequence, with three parameters:

  - +start+ or +end+ to denote the start (resp. the end) of a step;
  - the name of the step about to be started, or which just ended;
  - the name of the package.

For example :

----
make BR2_INSTRUMENTATION_SCRIPTS="/path/to/my/script1 /path/to/my/script2"
----

The list of steps is:

  - +extract+
  - +patch+
  - +configure+
  - +build+
  - +install-host+, when a host-package is installed in +$(HOST_DIR)+
  - +install-target+, when a target-package is installed in +$(TARGET_DIR)+
  - +install-staging+, when a target-package is installed in +$(STAGING_DIR)+
  - +install-image+, when a target-package installs files in +$(BINARIES_DIR)+

The script has access to the following variables:

  - +BR2_CONFIG+: the path to the Buildroot .config file
  - +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
    xref:generic-package-reference[]
  - +BUILD_DIR+: the directory where packages are extracted and built
  - +BINARIES_DIR+: the place where all binary files (aka images) are
    stored
  - +BASE_DIR+: the base output directory
