1
readelf -l /bin/ls
:爲什麼精靈段不是頁面對齊的?
LOAD 0x000000 0x08048000 0x08048000 0x18ff8 0x18ff8 R E 0x1000
LOAD 0x019eec 0x08061eec 0x08061eec 0x003f4 0x01014 RW 0x1000
所以這兩個節之間的邊界頁只讀和可讀寫,這怎麼可能?
readelf -l /bin/ls
:爲什麼精靈段不是頁面對齊的?
LOAD 0x000000 0x08048000 0x08048000 0x18ff8 0x18ff8 R E 0x1000
LOAD 0x019eec 0x08061eec 0x08061eec 0x003f4 0x01014 RW 0x1000
所以這兩個節之間的邊界頁只讀和可讀寫,這怎麼可能?
假設4096(0×1000)個字節的頁大小和舍入地址頁面粒度:
沒有重疊。
爲什麼第二個分段從ox8061000開始? – user1608776
@ user1608776好問題。您可能需要查看'/ bin/ls'的鏈接器映射來確定位於偏移量0x8061000和0x8061EEC之間的數據。查看更簡單(hello world)可執行文件的鏈接器映射,相應的偏移量範圍似乎用於名爲'.tdata','.tbss'和'.gcc_except_table'的節。 – jkoshy