Debugging Applications

The IDE allows you to debug a running application, a library used by the application, or a core file.

Here, debugging means finding and fixing problems that prevent a program from completing its tasks or running reliably. This can involve stepping through code but also investigative tasks such as reading memory and CPU statistics to determine which thread is hanging or to understand the conditions around a program crash.

This broader definition means that debugging can be done with tools other than a conventional debugger. In addition to using the GNU Debugger (GDB), you can examine data reported by the System Profiler, check for runtime errors using several memory- and heap-monitoring tools, and see thread states in the System Information.

We first explain the debugging use cases supported by the IDE and how to select the best tool in each case. Then, we describe the workflows that involve using GDB to step through program code in various circumstances. Information about using other runtime analysis tools as part of debugging is given in later chapters.