0
実行可能ファイルa.out
は共有ライブラリ1.so
,2.so
および3.so
をロードします。 3つのライブラリのそれぞれに実装された関数func()
があります。 func()
が呼び出されたとき、func()
のどの実装が実行されているかを特定したいと思います。共有ライブラリを識別する方法
私はltrace
を実行可能ファイルのPIDで試してみました。 func()
コールのみがリストされますが、共有ライブラリはリストされません。
提案がありますか?
二つの同様の質問に(重複を強要ではなく、私見):のhttp:/ /stackoverflow.com/questions/6538501/linking-two-shared-libraries-with-some-of-the-same-symbols http://stackoverflow.com/questions/29079742/same-symbols- in-different-libraries-and-linking-order – DyZ
関数のアドレスを知っていれば、プロセスメモリマップ( '/ proc//maps')で検索することができます。 –
私は「重複しません」と同意しますが、ライブラリがリンカーに渡された順序を知っていれば、質問は最初のものから 'func'となることを強く示唆しています。 –