符號表 鏈結器與位址

2021-09-07 15:53:42 字數 754 閱讀 3743

符號表將識別符號和其型別、位置關聯起來,當我們去處理變數,函式的宣告時,就是將這些資訊組織(繫結)起來,放在表裡,當需

要知道這些函式,變數的意義時,就去這個表裡查。

一般來講,符號表有記憶體位址和函式/變數的對應關係,編譯時節點的各種屬性(型別,作用域,分配空間大小,(函式)的引數型別)等。對符號表的具體使用方法每個編譯器都不同。

0000000100134d18 - 01 0000   fun +[ccresponsehandle checkrequestcontroller]

0000000100134d18 t +[ccresponsehandle checkrequestcontroller]

000000010013470c t +[ccresponsehandle handleresponse:]

000000010013470c - 01 0000   fun +[ccresponsehandle handleresponse:]

0000000000000000 - 00 0000  gsym _objc_ivar_$_ccbasereqapi._retcode

00000001005f87f0 s _objc_ivar_$_ccbasereqapi._retcode

0000000000000000 - 00 0000  gsym _objc_ivar_$_ccbasereqapi._retmessage

00000001005f87f4 s _objc_ivar_$_ccbasereqapi._retmessage

未解決符號表,匯出符號表和位址重定向表

讓我們總結一下 編譯器把乙個cpp編譯為目標檔案的時候,除了要在目標檔案裡寫入cpp裡包含的資料和 還要至少提供3個表 未解決符號表,匯出符號表和位址重定向表。未解決符號表提供了所有在該編譯單元裡引用但是定義並不在本編譯單元裡的符號及其出現的位址。匯出符號表提供了本編譯單元具有定義,並且願意提供給其...

雜湊表鏈結位址法實現

說明 0 7相對於陣列下標,每個陣列元素下標又相當於乙個單鏈表。ifndef hash h define hash h define hashsize 10 typedef struct node node class hashtable endif hash h include pch.h inc...

核心符號表中位址都為0??

00000000 t stext 00000000 t sinittext 00000000 t stext 00000000 t init begin 00000000 t create page tables 00000000 t enable mmu loc 00000000 t fixup ...