現在、LD_PROFILE 環境変数を使用して、プリロードされた共有ライブラリのプロファイルを作成しようとしています。
「-g」フラグを指定してライブラリをコンパイルし、プリロードされたライブラリでアプリケーション (私の場合は ncat) を実行する前に、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を使用しています。
どうもありがとう!