Debug information is generated when a program is compiled from source code into a binary. Programs like the GDB debugger* use the information to map machine instructions back to the original source code. Developers can then debug and analyze their programs by stepping through the original source code, rather than going through the much lower level, and harder to understand, CPU instructions one by one.

Debug information presents multiple challenges for an OS and for the tools that allow developers to install such debug information for system components individually as the root user:

  • The information is often many times larger than the actual program.

  • The developer needs root user permissions to debug.

  • Developers find themselves repeating the installation process over and over again as their debugging crosses various components.

  • It is challenging to keep the information synchronized as security updates are applied to the system.

The Clear Linux Project for Intel® Architecture uses the FUSE file system feature of the Linux* Kernel to solve these problems. An agent in the OS can discover the specific debug information that GDB and similar applications want  and downloads all the right pieces on demand and automatically. For you, the developer debugging applications, this results in having the complete debug information there, all the time, and without system resources hogging massive amounts of disk space.