出力セクションの説明に関するldマニュアルによると:
section [address] [(type)] :
[AT(lma)]
[ALIGN(section_align) | ALIGN_WITH_INPUT]
[SUBALIGN(subsection_align)]
[constraint]
{
output-section-command
output-section-command
...
} [>region] [AT>lma_region] [:phdr :phdr ...] [=fillexp] [,]
アドレスまたは>regionは、VMA、つまり出力セクションの仮想メモリ アドレスを表します。
AT()またはAT>lma_regionは、LMA、つまり出力セクションのロード メモリ アドレスを表します。
そして、helloworld elf ファイルのセクション ヘッダーとプログラム ヘッダーreadelf -e
をダンプするために、詳細なビューを取得することにしました。結果は以下のとおりです。
私の質問は次のとおりです。
- ダンプされたヘッダーに LMA がないのはなぜですか? LMA は ELF ファイルでどのように表されますか?
- 赤い長方形の Addr 列は何を意味していますか? VMA?
- 緑色の長方形の PhysAddr は何を意味していますか?
追加 1
これまでのところ、PhysAddr は LMA のようです。