Shared Libraries Window

The Shared Libraries window lets you see which libraries have been loaded by an executable running in Xcode’s debugger. To open the Shared Libraries window, choose Debug > Tools > Shared Libraries.

The Module Information table lists all of the individual libraries that the executable links against. In this table, you can see the name and address of each shared library, as well as which symbols the debugger has loaded for that library. The Starting column shows which symbols the debugger loads by default for a given library when the current executable is running. The Current Level column shows which symbols the debugger has loaded for the library during the current debugging session. When an entry has a value in the Address and Current Level columns, the library has been loaded in the debugging session.

The path at the bottom of the window shows where the currently selected library is located in the file system. You can quickly locate a particular library by using the search field to filter the list of libraries by name. You can add and delete libraries from this list using the ‘+’ and ‘-’ buttons.

Using the Shared Libraries window you can also choose which symbols the debugger loads for a shared library. This can help the debugger load your project faster. You can specify a default symbol level for all system and user libraries; you can also change which symbols the debugger loads for individual libraries.

For any shared library, you can choose one of three levels of debugging information:

You can specify a different symbol level for system libraries and user libraries. User libraries are any libraries produced by a target in the current project. System libraries are all other libraries.

By default, the debugger loads only external symbols for system and user libraries and automatically loads additional symbols as needed, as described in Lazy Symbol Loading. Disabling the "Load symbols lazily" option, described in Debugging Preferences, changes the default symbol level for User Libraries to “All.” This is a per-user setting and affects all executables you define. You can also customize the default symbol level settings for system and user libraries on a per-executable basis, using the Default Level pop-up menus in the Shared Libraries window.

For some special cases—applications with a large number of symbols—you may wish to customize the default symbol level for individual libraries when running with a particular executable. To set the initial symbol level to a value other than the default, make a selection in the Starting column. While debugging you can increase the symbol level using the Current Level column. This can be useful if you need more symbol information while using GDB commands in the Console. Clicking Reset sets all of the starting symbol levels for the libraries in the Module Information table back to the Default value.