From: Debugging a Program With dbx
在共享库中设置断点
dbx 对使用连接运行时链接程序的编程接口的代码提供全面的调试支持:调用 dlopen()、
dlclose() 及其关联函数的代码。运行时链接程序在程序执行期间会绑定和解开共享库。
利用对 dlopen() 和 dlclose() 的调试支持可步入函数,或在动态共享库的函数中以在
程序启动时在链接的库中设置断点的同样方式来设置断点。
但有几个例外。dbx 无法在尚未装入的装入对象(例如,使用 dlopen() 装入的对象)
中放置断点:
■ 无法在 dlopen() 装入某库前在 dlopen() 装入的库中设置断点。
■ dlopen() 装入的过滤器库中的第一个函数被调用后,才能在该库中设置断点。
可以使用 loadobject 命令将此类装入对象的名称置于预装列表中(请参见第 325 页的
“loadobject 命令”)。
dbx 会考虑使用 dlopen() 装入的装入对象。例如,在刚装入的装入对象中设置的断点
会一直保持到下一次运行命令执行时,即便使用 dlclose() 卸下了装入对象,也可随后
使用 dlopen() 再次装入。