| |||
| Home > Controlling execution > Pending breakpoints | |||
You can set standard execution breakpoints in a shared library but not until it is loaded by the application and the debug symbols are loaded into the debugger. Pending breakpoints however, enable you to set execution breakpoints in a shared library before it is loaded by the application.
A pending breakpoint is one that exists in the debugger but might not exist on the target until some precondition is met, such as a shared library being loaded. When a new shared library is loaded the debugger re-evaluates all pending breakpoints. Those with addresses that can be resolved are set as standard execution breakpoints. Breakpoints with unresolved addresses remain pending.
The debugger automatically changes any breakpoints in a shared library to a pending breakpoint when the library is unloaded by your application.
In the Breakpoints view you can force the resolution of a pending breakpoint. This might be useful if you have manually modified the search paths. To do this:
Right-click on the pending breakpoint that you want to resolve.
Click on Resolve to attempt to find the address and set the breakpoint.
If you want to manually set a pending breakpoint, use the -p option
on any of the breakpoint commands, advance, break, hbreak, tbreak, thbreak.
You can enter debugger commands in the Commands view.
For example:
break -p lib.c:20 # Sets a pending breakpoint at line 20 in lib.c
DS-5 Debugger Command Reference: