討論串[問題] 關於 Position Independent Code 的概念
共 7 篇文章
首頁
上一頁
1
2
下一頁
尾頁

推噓4(4推 0噓 13→)留言17則,0人參與, 最新作者coldstars (あら~)時間15年前 (2010/10/10 16:48), 編輯資訊
0
0
0
內容預覽:
但是DSO並不知道自己會被載入到哪個位址. 所以位址固定,其實對DSO來說應該是 "在我自己的範圍裡,位址固定". 假設DSO的起點 = base. 那這個image大概會長這樣. base:. .data:. // TYPE NAME. int32 x. .... .... .text:. inc
(還有572個字)

推噓1(1推 0噓 0→)留言1則,0人參與, 最新作者littleshan (我要加入劍道社!)時間15年前 (2010/10/10 16:24), 編輯資訊
0
0
0
內容預覽:
如果你有看過 x86 的 machine code 格式. 大概不會有這樣的疑問. 比如說 ++x 的命令. 在不使用 PIC 的情況下編成 machine code 後會長這樣:. (以下是我編出 .exe 後再用 dumpbin 進行反組譯後的結果). 00401003: A1 C0 BD 40
(還有207個字)

推噓0(0推 0噓 5→)留言5則,0人參與, 最新作者nowar100 (拋磚引玉)時間15年前 (2010/10/10 11:15), 編輯資訊
0
0
0
內容預覽:
其實我對於您提出的例子,沒辦法理解,以下是我的謬論(?). 假設 libfoo.so 的 Code 如您所說. int x;. void inc() { ++x; }. 那麼在編譯及連結之後, x 應該是長在該 DSO 自己的 .data 區. 也就是我推文所講的,應該是可以直接從 .data 的
(還有156個字)

推噓3(3推 0噓 2→)留言5則,0人參與, 最新作者coldstars (あら~)時間15年前 (2010/10/10 09:44), 編輯資訊
0
0
0
內容預覽:
我覺得他寫錯了,或是你看錯.... 即使是PIC的image,也是load的時候才做relocation XD. 甚至有些東西還是第一次call到的時候才做. 能不能省記憶體主要是靠PIC (gcc是用-fpic/-fPIC的option). reloc是要解決有些address在執行時才知道的問題
(還有660個字)

推噓3(3推 0噓 5→)留言8則,0人參與, 最新作者purpose (purpose)時間15年前 (2010/10/10 09:43), 編輯資訊
0
0
1
內容預覽:
程式設計師的自我修養?我買回來只有翻馬上想看的部份,查查資料. 還沒看完,有機會可以在版上多討論討論。. 先提一下,Windows 的 .exe (執行檔,即PE格式)、.dll (動態函式庫),. 就是用「load time relocation」這個方法,. 所以拿來跟 Linux 的 ELF
(還有6109個字)
首頁
上一頁
1
2
下一頁
尾頁