dlopen
私のアプリケーションはカスタムコードを動的にロードします。一般的に使用されるシンボルの場合、デフォルトではグローバルシンボルテーブルが使用されます。
しかし、私は次の機能を提供したいと思います。ユーザーが接続している場合は、関数にフラグを渡します-Bsymbolic-functions
。RTLD_DEEPBIND
dlopen
-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