0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arm64栈回溯 结构介绍

麦辣鸡腿堡 ? 来源:人人极客社区 ? 作者:业余程序员plus ? 2023-07-28 11:25 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Arm64有4种栈,分别是空增栈(Empty Ascendant Stack,EA)、空减栈(Empty Descendant Stack,ED)、满增栈(Full Ascendant Stack,FA)、满减栈(Full Descendant Stack,FD)。常用的是满减栈,Linux内核也使用满减栈。

下图是一个满减栈的示意图,高地址为栈顶,低地址为栈低,栈向低地址方向生长,如右边的箭头所示。栈指针SP指向栈底(栈低保存了数据)。

每产生一次函数调用,就会在栈中形成一个栈帧,该栈总共保存了4个栈帧(Stack Frame),每个栈帧由FP、LR及栈参数(函数参数、函数局部变量等)组成。可以将栈中的所有栈帧视为一个单项链表,栈最低位置的栈帧为链表头,栈最高位置的栈帧为链表尾,整个链表使用FP索引

栈手动回溯时,可以根据FP将所有栈帧索引出来。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1418

    浏览量

    41567
  • Linux
    +关注

    关注

    87

    文章

    11522

    浏览量

    214382
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何对RK3399 CPU arm64的内核进行配置

    如何对RK3399 CPU arm64的内核进行配置?
    发表于 02-16 06:20

    浅析openat系统调用在arm64下的实现及使用原理

    1. 简介这篇文章主要介绍系统调用在arm64下的实现及使用原理,考虑到目前bpf在系统调试和调优工作中被大量使用,在文章的最后也简单介绍一下系统调用相关的bpf工具。系统调用在每个平台的实现方式
    发表于 06-02 17:48

    介绍ARM64架构下启动多核的两种方式

    1、ARM64的多核启动流程分析工作中遇到的多核 ARM CPU 越来越多,总结分享一些多核启动的知识,希望能帮助更多小伙伴。在 ARM64 架构下如果想要启动多核,有 spin-table
    发表于 06-13 18:23

    arm64和x86服务器上运行的耗时来发现Docker在arm64架构下的性能问题

    现在的进展并不快,因为老测试集里面用例数量庞大。目前,老测试集中的用例数量还远远大于新测试集。问题大量的集成测试用例为性能研究提供了方便。笔者通过比较同一测试集在arm64和x86服务器上运行的耗时来
    发表于 07-12 15:48

    一文详解Linux内核的回溯与妙用

    网上或多或少都能找到回溯的一些文章,但是讲的都并不完整,没有将内核回溯的功能用于实际的内核、应用程序调试,这是本篇文章的核心:尽可能引导读者将
    的头像 发表于 10-05 10:02 ?5836次阅读
    一文详解Linux内核的<b class='flag-5'>栈</b><b class='flag-5'>回溯</b>与妙用

    ARM64ARM32 的Linux程序区别在哪里

    arm64ARM64。我在示例中使用了AArch64寄存器,但我所描述的许多问题也发生在ARMv8-A 32位执行状态。
    的头像 发表于 08-09 09:51 ?2.8w次阅读
    <b class='flag-5'>ARM64</b>与<b class='flag-5'>ARM</b>32 的Linux程序区别在哪里

    微软推出首个可用于ARM64设备的x64仿真

    微软通过开发者博客宣布,已通过Windows内部开发频道推出了第一个可用于ARM64设备的x64仿真的预览版Build 21277,这意味着使用ARM芯片的笔记本用户可以从Windows商店或其他渠道安装x
    的头像 发表于 12-11 09:14 ?2346次阅读

    微软发首个应用在ARM64设备的x64模拟器

    面向 Dev 频道 Windows Insider 成员,今天微软发布了 Windows 10 Build 21227 版本更新。而在本次预览版更新中,微软发布了首个适用于 ARM64 设备
    的头像 发表于 12-11 14:14 ?1964次阅读

    ARM64 Linux内核页表的块映射

    内核文档Documentation/arm64/memory.rst描述了ARM64 Linux内核空间的内存映射情况,应该是此方面最权威文档。 以典型的4K页和48位虚拟地址为例,整个内核空间
    的头像 发表于 01-04 13:37 ?2876次阅读
    <b class='flag-5'>ARM64</b> Linux内核页表的块映射

    Core 3399KJ Linux根文件系统镜像(arm64/arm32)

    电子发烧友网站提供《Core 3399KJ Linux根文件系统镜像(arm64/arm32).txt》资料免费下载
    发表于 09-14 10:08 ?3次下载
    Core 3399KJ Linux根文件系统镜像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    Core 3399J Linux根文件系统镜像(arm64/arm32)

    电子发烧友网站提供《Core 3399J Linux根文件系统镜像(arm64/arm32).txt》资料免费下载
    发表于 09-14 09:24 ?0次下载
    Core 3399J Linux根文件系统镜像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    ROC RK3399 PC Pro文件系统Linux根文件系统镜像(arm64/arm32)

    电子发烧友网站提供《ROC RK3399 PC Pro文件系统Linux根文件系统镜像(arm64/arm32).txt》资料免费下载
    发表于 09-20 10:59 ?5次下载
    ROC RK3399 PC Pro文件系统Linux根文件系统镜像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    AIO 3399ProC Linux根文件系统镜像(arm64/arm32)

    电子发烧友网站提供《AIO 3399ProC Linux根文件系统镜像(arm64/arm32).txt》资料免费下载
    发表于 09-21 09:52 ?11次下载
    AIO 3399ProC Linux根文件系统镜像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    海凌科新款arm64开发板wukongPi 4B简述

    海凌科新款arm64开发板——wukongPi 4B上架,兼容树莓派,采用RK3399 SoC。
    的头像 发表于 08-07 14:53 ?1692次阅读
    海凌科新款<b class='flag-5'>arm64</b>开发板wukongPi 4B简述

    ARM64位与ARM32位OP-TEE启动过程的差异

    ARM32的OP-TEE与ARM64的OP-TEE启动过程大致相同。ARM64的OP-TEE的_start函数定义在generic_entry_a64.S文件中,而且该函数不像
    的头像 发表于 11-07 15:12 ?1188次阅读