dbx 对使用连接运行时链接程序的编程接口的代码提供了全面的调试支持:调用 dlopen()、dlclose() 及其关联函数的代码。运行时链接程序会在程序执行期间绑定和解除绑定共享库。借助对 dlopen() 和 dlclose() 的调试支持,可以步入函数或在动态共享库的函数中设置断点,如同在程序启动时链接的库中一样。
但下列情况除外。此时,dbx 无法在尚未(例如,通过使用 dlopen())装入的装入对象中设置断点:
不能在通过 dlopen() 装入某库前在通过 dlopen() 装入的该库中设置断点。
在调用通过 dlopen() 装入的过滤器库中的第一个函数前,不能在该库中设置断点。
可以使用 loadobject 命令(请参见loadobject 命令)将此类装入对象的名称放在预装入列表中。
dbx 会记住使用 dlopen() 装入的装入对象。例如,在刚装入的装入对象中设置的断点会一直保持到执行下一次运行命令时,即便是使用 dlclose() 卸载了该装入对象,并随后使用 dlopen() 再次装入该装入对象。