#### 3.2.4.1. Debugging

When things go wrong, debugging needs to be straightforward. Because of this, the Yocto Project team included strong debugging tools:

- Whenever a shared state package is written out, so is a corresponding `.siginfo` file. This practice results in a pickled python database of all the metadata that went into creating the hash for a given shared state package.

- If BitBake is run with the `--dump-signatures` (or `-S`) option, BitBake dumps out `.siginfo` files in the stamp directory for every task it would have executed instead of building the specified target package.

- There is a `bitbake-diffsigs` command that can process these `.siginfo` files. If one file is specified, it will dump out the dependency information in the file. If two files are specified, it will compare the two files and dump out the differences between the two. This allows the question of "What changed between X and Y?" to be answered easily.