Arm64有4種棧,分別是空增棧(Empty Ascendant Stack,EA)、空減棧(Empty Descendant Stack,ED)、滿(mǎn)增棧(Full Ascendant Stack,F(xiàn)A)、滿(mǎn)減棧(Full Descendant Stack,F(xiàn)D)。常用的是滿(mǎn)減棧,Linux內(nèi)核也使用滿(mǎn)減棧。
下圖是一個(gè)滿(mǎn)減棧的示意圖,高地址為棧頂,低地址為棧低,棧向低地址方向生長(zhǎng),如右邊的箭頭所示。棧指針SP指向棧底(棧低保存了數(shù)據(jù))。
每產(chǎn)生一次函數(shù)調(diào)用,就會(huì)在棧中形成一個(gè)棧幀,該棧總共保存了4個(gè)棧幀(Stack Frame),每個(gè)棧幀由FP、LR及棧參數(shù)(函數(shù)參數(shù)、函數(shù)局部變量等)組成。可以將棧中的所有棧幀視為一個(gè)單項(xiàng)鏈表,棧最低位置的棧幀為鏈表頭,棧最高位置的棧幀為鏈表尾,整個(gè)鏈表使用FP索引。
棧手動(dòng)回溯時(shí),可以根據(jù)FP將所有棧幀索引出來(lái)。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1382瀏覽量
40430 -
Linux
+關(guān)注
關(guān)注
87文章
11347瀏覽量
210433
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何對(duì)RK3399 CPU arm64的內(nèi)核進(jìn)行配置
淺析openat系統(tǒng)調(diào)用在arm64下的實(shí)現(xiàn)及使用原理
介紹在ARM64架構(gòu)下啟動(dòng)多核的兩種方式
在arm64和x86服務(wù)器上運(yùn)行的耗時(shí)來(lái)發(fā)現(xiàn)Docker在arm64架構(gòu)下的性能問(wèn)題
一文詳解Linux內(nèi)核的棧回溯與妙用
![一文詳解Linux內(nèi)核的<b class='flag-5'>棧</b><b class='flag-5'>回溯</b>與妙用](https://file.elecfans.com/web1/M00/65/89/pIYBAFuq6W6AAVS-AAAR5K9e2g8427.png)
ARM64與ARM32 的Linux程序區(qū)別在哪里
![<b class='flag-5'>ARM64</b>與<b class='flag-5'>ARM</b>32 的Linux程序區(qū)別在哪里](https://file.elecfans.com/web1/M00/A1/21/o4YBAF1FTB2Adw23AAAwXxzwlds391.gif)
微軟推出首個(gè)可用于ARM64設(shè)備的x64仿真
微軟發(fā)首個(gè)應(yīng)用在ARM64設(shè)備的x64模擬器
ARM64 Linux內(nèi)核頁(yè)表的塊映射
![<b class='flag-5'>ARM64</b> Linux內(nèi)核頁(yè)表的塊映射](https://file.elecfans.com/web1/M00/D8/67/o4YBAF_yqeKAdG5OAADH7hXBAa4941.png)
Core 3399KJ Linux根文件系統(tǒng)鏡像(arm64/arm32)
![Core 3399KJ Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Core 3399J Linux根文件系統(tǒng)鏡像(arm64/arm32)
![Core 3399J Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ROC RK3399 PC Pro文件系統(tǒng)Linux根文件系統(tǒng)鏡像(arm64/arm32)
![ROC RK3399 PC Pro文件系統(tǒng)Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AIO 3399ProC Linux根文件系統(tǒng)鏡像(arm64/arm32)
![AIO 3399ProC Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
海凌科新款arm64開(kāi)發(fā)板wukongPi 4B簡(jiǎn)述
![海凌科新款<b class='flag-5'>arm64</b>開(kāi)發(fā)板wukongPi 4B簡(jiǎn)述](https://file1.elecfans.com/web2/M00/8F/95/wKgZomTQlViAWuolAABN3L7dZ6M688.png)
評(píng)論