2017-06-16 57 views
0

爲什麼elf的入口點是0x8048320.This問題來看,它是操作系統內核用來映射進程的虛擬地址。但,進程映射(在x86處理器中)的虛擬地址爲0xc0000000(用戶空間較低,3GB,內核空間較高,1GB)。現在這個0x8048320起點地址背後的理論是什麼。它不應該是0c0000000h ??elf可執行文件頭的入口點

問候,

+0

elf header的入口點:'readelf -h a.out' – Aimal

+0

[爲什麼我的可執行文件中的入口點地址是0x8048330(0x330被偏移的.text節)](https://stackoverflow.com /問題/ 12488010 /爲什麼最入門點地址中,我的可執行-IS-0x8048330-0x330感-偏移的) –

回答

1

切入點不是可執行文件的映射的開始。這是程序啓動時將運行的第一條指令的地址。因此,它通常位於.text部分的中間。

如果使用GCC或兼容的編譯器,它將是libc中函數_start的地址。這是最終會調用你的main()的函數。

從你的榜樣,0x8048320基址可能會0x8000000_start偏移會0x48320

在我的機器,但是:

$ readelf -h /usr/bin/ls | grep Entry 
Entry point address:    0x404030 

所有這些虛擬地址通常是到編譯器和/或連接。

相關問題