依存関係を変更するargvを取得した場合でも、プログラムのすべての依存関係(ライブラリ)と構成をどのようにリストできますか?
答え1
プログラムがGNU Cライブラリの動的リンカ(ld.so
)を使用している場合は、それを実行して次の設定でロードされているすべてのライブラリを追跡できますLD_DEBUG=libs
。
LD_DEBUG=libs yourcommand --args
これにより、プログラムパラメータを変更すると、ロードされるライブラリが変更されるかどうかを判断できます。
表示されているすべてのライブラリはldd /path/to/yourcommand
常にロードされ、プログラムパラメータによっては変更されません。ロードされたライブラリを使用するとdlopen
違いがある可能性があり、これはこの手法を使用して表示されます。
どの設定ファイルを読み込んだのかを知りたい場合は、以下を使用してくださいstrace
。
strace -e open yourcommand --args