【发布时间】:2014-03-19 00:38:50
【问题描述】:
我知道 LD_PRELOAD 可用于拦截对共享库中函数的调用(如果应用程序未静态链接)。但是,我不知道如何使用它向应用程序添加附加功能或后台线程。
例如,我认为 Berkeley labs checkpoint/restart 使用此方法将后台线程添加到稍后可能会设置检查点的应用程序。
那么,现在的问题是如何在事先不知道从该应用程序调用共享库的哪些函数的情况下,如何使用 LD_PRELOAD 将线程注入到已编译的应用程序中?
【问题讨论】:
-
我相信有各种各样的函数,如果存在,将在库加载时自动调用。您可能会在动态链接器的文档中找到它。
标签: linux gcc dynamic-linking ld-preload