Differentiating metadata and application debugging
Before we delve into the details of debugging, we need to realize that there are different types of debugging, such as metadata and runtime code debugging.
Metadata debugging is needed to ensure that the behavior of BitBake’s tasks aligns with our goals and to identify the culprit when it’s not aligned. For example, a recipe may need to be fixed to enable a feature. In such a case, we can use several log files generated by BitBake in the host to help trace the execution path of the involved task.
On the other hand, debugging runtime code is more natural as it is essentially the same as the typical development cycle of an application, a library, or a kernel. Depending on the issue we are seeking to resolve, the right tool to help may vary from a debugger to code instrumentation (for example, adding debug prints).