女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文了解Prelink的注意事項

如意 ? 來源:CSDN ? 作者:CaspianSea ? 2020-06-22 08:31 ? 次閱讀

1.1. 地址無關代碼

需要被 Prelink 的 ELF 文件,無論是共享庫還是可執行文件,編譯時必須加 -fpic/-fPIC 參數,生成目標無關地址代碼。對于可執行文件,不能使用 -fpie/-fPIE 加 –pie 生成地址無關可執行文件,否則無法被 prelink。

一文了解Prelink的注意事項

這個結論是根據上述測試程序得出的,其中的詳細機理有待進一步研究。

1.2. 檢查Prelink 狀態

可以使用 readelf 和 objdump 工具來檢查一個 ELF 文件是否已經被 prelink。例如:

注意觀察到 6~14 行,對比沒有被 prelink 之前的狀態,INIT、FINI、STRTAB、SYMTAB 等 section 的地址已經修改為運行時進程空間的虛擬內存地址。第 30 行,RELACOUNT 表示已經預先進行重定位的符號的數量;第 31 行是 prelink 根據 ELF 所直接依賴的共享庫計算的 MD5 值,該值用于判斷該 ELF 所以來的共享庫是否被修改過;從第 32 行可以看出該 ELF 已被加上 PRELINKED 標記和時間戳。

但是,并非所有被成功 prelink 的 ELF 文件都會加上 PRELINKED 的標記和時間戳。在用 prelink 處理完我們的SDK的后,發現 target_bin 所有的依賴項都有 PRELINKED 標記,target_bin 自身并沒有此標記。但是通過測試其啟動速度,確有巨大的提升,證明 prelink 在 target_bin 上確實發揮了作用。

至于為什么沒有這個標記,暫時還沒有調查清楚,仍待進一步研究。

對于上述情況,通過 objdump 等工具查看ELF文件的 section header,我們仍然可以發現 prelink 處理后留下的蛛絲馬跡。

Prelink 之前,查看 target_bin 的節頭:

Prelink 之后,再次查看節頭:

對比 prelink 前后的節頭信息,我們發現 prelink 后每個節的地址都有了調整,增加了.gnu.liblist , .gnu.conflict 和 .gnu.prelink_undo 這三個節。同時 .dynstr 節的 size 由 0xa3cb1 增加到了 0xa3e8c。這些都是 prelink 之后 ELF 的 size 有所增大的原因。

1.3. 查看ELF依賴樹

Prelink 的處理過程是從目標 ELF 文件開始,檢查其依賴樹。從葉子節點開始處理,自底向上,直至根節點。若中間任何節點處理異常,則目標文件都無法被 prelink。同理,如果已經被 prelink 處理的 ELF 文件,如果其依賴樹的中任何節點對應的 ELF 文件有更改,則需要從根開始重新 prelink。如果被更改的 ELF 所處的層級較低,被很多可執行文件依賴,則可能整個系統的 ELF 都需要重新進行 Prelink 處理。

可以使用 lddtree 查看 ELF 文件的依賴樹。但是這個工具比較雞肋,只適用于處理本機的 ELF 文件,無法像 prelink 一樣可以在運行時指定 sysroot 和 LD_LIBRARY_PATH。

1.4. 不必要的依賴項

如果 prelink 在處理某個 ELF 文件(記為 A)的過程中,發現 A 并沒有使用其直接依賴的另一個 ELF 文件(記為 B),而 A 又通過 C 間接依賴到 B,并且 B 已經被 prelink 處理。此時,A 將無法被 prelink。

1.5. 動態加載的共享庫

Prelink 對于通過 dlopen 方式打開的共享庫沒有效果。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編譯
    +關注

    關注

    0

    文章

    676

    瀏覽量

    33740
  • Prelink
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1657
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    手機喇叭氣密性檢測儀的注意事項

    使用手機喇叭氣密性檢測儀的注意事項包括以下幾點:、使用前注意事項仔細閱讀手機喇叭氣密性檢測儀的使用說明書,了解設備的操作方法和注意事項。檢
    的頭像 發表于 05-15 13:38 ?92次閱讀
    手機喇叭氣密性檢測儀的<b class='flag-5'>注意事項</b>

    掃描電鏡的日常維護有哪些注意事項

    掃描電鏡日常維護的注意事項
    的頭像 發表于 03-24 11:38 ?352次閱讀
    掃描電鏡的日常維護有哪些<b class='flag-5'>注意事項</b>?

    驅動板設計注意事項

    設計驅動板時我們需要考慮電路原理與元器件選擇、PCB設計、熱管理、電磁兼容性(EMC)、其他注意事項。以下是關于相關內容的詳細介紹,讓我們起來簡單的了解下吧!
    的頭像 發表于 02-12 13:48 ?451次閱讀

    智多晶DDR Controller使用注意事項

    最后期我們主要介紹智多晶DDR Controller使用時的注意事項。
    的頭像 發表于 01-24 11:14 ?570次閱讀
    智多晶DDR Controller使用<b class='flag-5'>注意事項</b>

    AN20-儀表低通濾波器的應用注意事項

    電子發燒友網站提供《AN20-儀表低通濾波器的應用注意事項.pdf》資料免費下載
    發表于 01-12 11:25 ?0次下載
    AN20-儀表低通濾波器的應用<b class='flag-5'>注意事項</b>

    多層板埋孔設計注意事項

    多層板埋孔設計注意事項
    的頭像 發表于 12-20 16:06 ?697次閱讀

    PCBA生產注意事項

    ? ?PCBA生產注意事項。 長按識別二維碼關注[現代電子裝聯工藝技術]訂閱號,開啟我們共同的學習之旅 end
    的頭像 發表于 11-15 17:04 ?767次閱讀
    PCBA生產<b class='flag-5'>注意事項</b>

    如何為住宅配置靜態IP:步驟與注意事項

    為住宅配置靜態IP地址,通常涉及以下步驟和注意事項
    的頭像 發表于 10-24 08:02 ?825次閱讀

    TPS65233、TPS65235的LNB設計注意事項

    電子發燒友網站提供《TPS65233、TPS65235的LNB設計注意事項.pdf》資料免費下載
    發表于 10-08 09:58 ?4次下載
    TPS65233、TPS65235的LNB設計<b class='flag-5'>注意事項</b>

    脈沖式充電器的使用注意事項

    脈沖式充電器的使用注意事項主要包括以下幾個方面: 、安全注意事項 用電安全 :在充電過程中,應始終保持警惕,注意用電安全,避免觸電和短路等危險情況的發生。 防火防災 :避免在易燃易爆
    的頭像 發表于 09-26 16:05 ?2197次閱讀

    繞線電感定制的注意事項

    電子發燒友網站提供《繞線電感定制的注意事項.docx》資料免費下載
    發表于 09-20 11:24 ?4次下載

    profinet網關的接線步驟和注意事項

    Profinet網關的接線過程可以根據具體的應用場景和設備型號有所不同,但般可以按照以下步驟進行,以下是個典型的接線步驟和注意事項。
    的頭像 發表于 09-18 11:53 ?1404次閱讀

    共模電感定制的注意事項

    電子發燒友網站提供《共模電感定制的注意事項.docx》資料免費下載
    發表于 09-04 11:47 ?0次下載

    LiFePO4設計注意事項

    電子發燒友網站提供《LiFePO4設計注意事項.pdf》資料免費下載
    發表于 09-03 09:24 ?0次下載
    LiFePO4設計<b class='flag-5'>注意事項</b>

    現場總線的使用方法與注意事項

    的穩定可靠運行,正確的使用方法和注意事項至關重要。本文將詳細介紹現場總線的使用方法和注意事項,以供讀者參考。
    的頭像 發表于 06-06 11:49 ?1184次閱讀