私は現在、実行可能ファイルを表現するためにLLVM's
ObjectFile
(文書番号here)を使用しています。私はObjectFile
の実行ファイルを正常に読み込んでおり、begin_dynamic_symbols()
関数の呼び出しによって得られたsymbol_iterator
に含まれるシンボル名に対応する実行可能ファイル内の呼び出し先アドレスを特定したいと考えています。 symbol_iterator
の各シンボルを反復すると、各シンボルの名前とそのアドレスが得られますが、シンボルは動的なので、各シンボルのアドレスは-1です。これは、ObjectFile
がシンボル名を対応するコール宛先アドレスに直接関連付けていないことを示します。LLVMを使用した実行可能シンボルの動的シンボル解決
ObjectFile
では、どの発信先アドレスがどのダイナミックシンボルにマッピングされるかを判別する方法はありますか。私はむしろ手動ですべてのジャンプをPLT
とGOT
で回避することはできません。
cfe-devメーリングリストで質問してください:http://lists.cs.uiuc.edu/pipermail/cfe-dev/ –