複数のユーザー ライブラリと pthread ライブラリに対してリンクする、静的にリンクされたアプリケーション バイナリがあります。アプリケーションは、これらの各ライブラリから限定された関数セットのみを使用します。以前の投稿ライブラリと実行可能ファイルのサイズから、および私の実験から、リンカにはライブラリの内容全体ではなく、使用/必要な関数 (実行可能ファイル内) のみが含まれていることがわかりました。
それぞれのライブラリのどの関数が実行可能ファイルとそのアドレス (VMA) にリンクされているかを調べたいと思います。最終的には、テキスト セグメントにマップされている (ライブラリ内の) 関数に基づいて、各ライブラリの開始と終了の仮想メモリ アドレス (VMA) を含むリストをコンパイルしたいと考えています。
これを行う 1 つの方法は、ライブラリ内の関数のリストを作成し、実行可能ファイル内のこれらの関数のそれぞれと、それがマップされている対応する仮想メモリ アドレスを探すことです。しかし、これは私にはかなり面倒に思えます。これを達成するためのより簡単な方法はありますか?ありがとう。