我目前正在尝试使用 LD_PROFILE 环境变量来分析预加载的共享库。
在使用预加载的库运行应用程序(在我的情况下为 ncat)之前,我使用“-g”标志编译库并导出 LD_PROFILE_OUTPUT 和 LD_PROFILE。因此,更准确地说,我所做的是以下内容:
- 使用“-g”标志编译共享库 libexample.so。
export LD_PROFILE_OUTPUT=`pwd`
export LD_PROFILE=libexample.so
- 跑
LD_PRELOAD=`pwd`/libexample.so ncat ...
预加载本身确实有效,并且使用了我的库,但没有创建文件 libexample.so.profile。如果我export LD_PROFILE=libc.so.6
改用,则有一个文件 libc.so.6.profile 符合预期。
这是结合 LD_PRELOAD 和 LD_PROFILE 的问题还是我可能做错了什么?
如果有任何相关性,我在 CentOS 6.4 上使用 glibc v2.12。
非常感谢!