エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
引き続き、共有ライブラリの仕組を知るための準備でMach-Oの構造を調べる。今回はリロケーション情報を... 引き続き、共有ライブラリの仕組を知るための準備でMach-Oの構造を調べる。今回はリロケーション情報を読み込んでみる。環境はx86_64 リロケーションとは 最終形式にリンクされる前の中間形式のMach-Oファイルにはコードやデータが含まれているが、コードにデータへの参照(データのアドレス)が含まれている場合は、データが実際に配置されるアドレスに応じて、コード中に含まれる参照を書き換えなければならない。callやjmp等の分岐命令も実際に分岐先が配置されるアドレスに応じて参照を書き換えなければならない。例えば、中間形式では1234に有るデータを参照していても、そのデータがリンク後は4321に配置されたならば、コード中の「1234」と言うアドレスを「4321」に書き換えなければならない。これをリロケーションと言う。 実際のMach-Oファイルで見てみる ソース terux:blog_mach