.soが-Bsymbolic-functionsフラグでコンパイルされたことを確認する方法はありますか?

.soが-Bsymbolic-functionsフラグでコンパイルされたことを確認する方法はありますか?

dlopen私のアプリケーションはカスタムコードを動的にロードします。一般的に使用されるシンボルの場合、デフォルトではグローバルシンボルテーブルが使用されます。

しかし、私は次の機能を提供したいと思います。ユーザーが接続している場合は、関数にフラグを渡します-Bsymbolic-functionsRTLD_DEEPBINDdlopen

-Bsymbolic-functions.soがCに関連付けられているかどうかをプログラムで知る方法はありますか?

答え1

標準ELFプログラムダンプを使用できます。

dump -Lv libxxx.so | grep SYMBOLIC

答え2

というコマンドがあります。ナノメートル

nm - オブジェクトファイルのシンボルのリスト

次のコマンドを使用できます。

nm Absolute_path_of_.so_file_name | grep -i -Bsymbolic-functions

関連情報