6.9 About debugging shared libraries

Shared libraries enable parts of your application to be dynamically loaded at runtime. You must ensure that the shared libraries on your target are the same as those on your host. The code layout must be identical, but the shared libraries on your target do not require debug information.

You can set standard execution breakpoints in a shared library but not until it is loaded by the application and the debug information is loaded into the debugger. Pending breakpoints however, enable you to set execution breakpoints in a shared library before it is loaded by the application.

When a new shared library is loaded the debugger re-evaluates all pending breakpoints, and those with addresses that it can resolve are set as standard execution breakpoints. Unresolved addresses remain as pending breakpoints.

The debugger automatically changes any breakpoints in a shared library to a pending breakpoint when the library is unloaded by your application.

You can load shared libraries in the Debug Configurations dialog box. If you have one library file then you can use the Load symbols from file option in the Files tab.

Figure 6-2 Adding individual shared library files
Adding individual shared library files


Alternatively if you have multiple library files then it is probably more efficient to modify the search paths in use by the debugger when searching for shared libraries. To do this you can use the Shared library search directory option in the Paths panel of the Debugger tab.

Figure 6-3 Modifying the shared library search paths
Modifying the shared library search paths


For more information on the options in the Debug Configurations dialog box, use the dynamic help.

Non-ConfidentialPDF file icon PDF versionARM 100953_0527_00_en
Copyright © 2010–2017 ARM Limited or its affiliates. All rights reserved.