符號(hào)

符號(hào)

1、符號(hào)表種類(lèi):

  • Symbol Table : 用來(lái)保存符號(hào)
  • String Table : 用來(lái)保存符號(hào)的名稱(chēng)
  • Indirect Symbol Table: 間接符號(hào)表。保存使用的外部符號(hào)迁匠。更準(zhǔn)確一點(diǎn)就是使用的外部動(dòng)態(tài)庫(kù)的符號(hào)。是Symbol Table的子集

2渠啤、符號(hào)區(qū)分:

  • 按存在空間劃分

    • non private external
    • weak private external
  • 按照模塊劃分

    • weak global
    • weak local
  • 按功能劃分

    • f(file)态贤、F(function)端辱、O(Data)得哆、d(Debug)脯颜、*ABS*(Absolute)、*COM*(Common)贩据、*UND*(?)
  • 按符號(hào)種類(lèi)劃分

    • U unde?ned(未定義)
  • A absolute(絕對(duì)符號(hào))

    • T text section symbol(__TEXT.__text)
  • D data section symbol(__DATA.__data)

    • B bss section symbol(__DATA.__bss)
  • C common symbol(只能出現(xiàn)在MH_OBJECT 類(lèi)型的Mach-O?件中)

    • - debugger symbol table
  • S 除了上?所述的栋操,存放在其他section的內(nèi)容闸餐,例如未初始化的全局變量存放在(__DATA,__common)中

    • I indirect symbol(符號(hào)信息相同,代表同?符號(hào))
  • u 動(dòng)態(tài)共享庫(kù)中的?寫(xiě)u表示?個(gè)未定義引?對(duì)同?庫(kù)中另?個(gè)模塊中私有外部符號(hào)

3讼庇、導(dǎo)?(Import)導(dǎo)出(Export)符號(hào):

  • export symbol:導(dǎo)出表表示一個(gè)符號(hào)绎巨,其他文件可以將其導(dǎo)?(Import)
  • Import symbol:導(dǎo)入其他庫(kù)的符號(hào)

4近尚、two_levelnamespace & ?at_namespace:

?級(jí)命名空間與?級(jí)命名空間蠕啄。鏈接器默認(rèn)采??級(jí)命名空間,也就是除了會(huì)記錄符號(hào) 名稱(chēng)戈锻,還會(huì)記錄符號(hào)屬于哪個(gè)動(dòng)態(tài)庫(kù)的歼跟,?如會(huì)記錄下來(lái)_NSLog來(lái)?Foundation。

5格遭、Weak Symbol:

  • Weak Reference Symbol: 表示此未定義符號(hào)是弱引?哈街。如果動(dòng)態(tài)鏈接器找不到該符號(hào)的定義,則將其符 為0拒迅。靜態(tài)鏈接器會(huì)將此符號(hào)設(shè)置弱鏈接標(biāo)志骚秦。
  • Weak defintion Symbol: 表示此符號(hào)為弱定義符號(hào)。如果靜態(tài)鏈接器或動(dòng)態(tài)鏈接器為此符號(hào)找到另?個(gè)(?弱)定義璧微,則弱定義將被忽略作箍。只能將合并部分中的符號(hào)標(biāo)記為弱定義。

6前硫、Common Symbol:

在定義時(shí)胞得,未初始化的全局符號(hào)。

鏈接器設(shè)置:

  • -d: 強(qiáng)制定義Common Symbol屹电。
  • -commons: 指定對(duì)待Common Symbol如何響應(yīng)阶剑。

strip命令

strip用來(lái)移除或修改符號(hào)表中的符號(hào)

間接符號(hào)不能刪除

strip動(dòng)態(tài)庫(kù)的時(shí)候,不能strip全局符號(hào)

Strip Style:在Xcode build setting中配置

  • Debugging Symbols:調(diào)試符號(hào)
  • All Symbols:全部符號(hào)
  • Non-Global Symbols:除全局符號(hào)外的所有符號(hào)

Strip Debugging Symbols流程:

  1. 將Mach-O 解析成模型Object
  2. 遍歷LoadCommands
  3. 找到Segname==__DWARF的LoadCommand
  4. 移除Section
  5. 從符號(hào)表中移除Symbol
  6. 將修改后的模型Object重新寫(xiě)入Mach-O

Strip All Symbols 流程

  1. Strip Debugging Symbols
  2. markSymbols
  3. 除了間接符號(hào)表中引用的符號(hào)全部刪除

Strip Non-Global Symbols流程:

  1. Strip Debugging Symbols
  2. 遍歷符號(hào)表
  3. 刪除n_tyoe != N_EXT的符號(hào). (n_tyoe != N_EXT, 為外部符號(hào))

strip命令參數(shù):

  1. -x: non_global
  2. 無(wú)參數(shù): 代表全部符號(hào)
  3. -S: 調(diào)試符號(hào)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末危号,一起剝皮案震驚了整個(gè)濱河市牧愁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌外莲,老刑警劉巖猪半,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異苍狰,居然都是意外死亡办龄,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)淋昭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俐填,“玉大人,你說(shuō)我怎么就攤上這事翔忽∮⑷冢” “怎么了盏檐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)驶悟。 經(jīng)常有香客問(wèn)我胡野,道長(zhǎng),這世上最難降的妖魔是什么痕鳍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任硫豆,我火速辦了婚禮,結(jié)果婚禮上笼呆,老公的妹妹穿的比我還像新娘熊响。我一直安慰自己,他們只是感情好诗赌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布汗茄。 她就那樣靜靜地躺著,像睡著了一般铭若。 火紅的嫁衣襯著肌膚如雪洪碳。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天叼屠,我揣著相機(jī)與錄音瞳腌,去河邊找鬼。 笑死环鲤,一個(gè)胖子當(dāng)著我的面吹牛纯趋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冷离,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吵冒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了西剥?” 一聲冷哼從身側(cè)響起痹栖,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瞭空,沒(méi)想到半個(gè)月后揪阿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咆畏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年南捂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旧找。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溺健,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钮蛛,到底是詐尸還是另有隱情鞭缭,我是刑警寧澤剖膳,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站岭辣,受9級(jí)特大地震影響吱晒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沦童,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一仑濒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搞动,春花似錦躏精、人聲如沸渣刷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辅柴。三九已至箩溃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碌嘀,已是汗流浹背涣旨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留股冗,地道東北人霹陡。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像止状,于是被迫代替她去往敵國(guó)和親烹棉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容