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

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

3天内不再提示

RVBacktrace RISC-V极简栈回溯组件

RT-Thread官方账号 2024-09-15 08:12 次阅读

RVBacktrace

组件简介

一个极简的RISC-V栈回溯组件。

组件功能

在需要的地方调用组件提供的唯一API,开始当前环境的栈回溯

支持输出addr2line需要的命令,使用addr2line进行栈回溯

支持结合反汇编,栈回溯信息图表化

TODO List:

支持打印指定线程的栈回溯信息

支持对接RT_ASSERT

支持输出更多的符号信息

支持文件跳转

添加组件

这个组件已经制作成为rtthread软件包,大家可以在软件包市场找到。可以在env/RT-ThreadStudio中添加次软件包进行使用。使用过程有任何疑问/反馈欢迎提ISSUE或者在群里讨论。

使用示例

当前组件C的内容极其简单,同时对用户仅提供单个API:void rvbacktrace(void),用户在需要的地方调用该API就可以将当前的调用栈信息输出,示例(下文演示为HPM6750):

1.在示例代码适当位置调用rvbacktrace

3df373b4-72f7-11ef-bb4b-92fbcf53809c.png

2.运行代码,终端输出调用栈信息

3e09d91a-72f7-11ef-bb4b-92fbcf53809c.png

3.栈回溯信息直观化

可以看到的是当前shell输出的信息没有符号信息,不太直观,当前组件提供了两种方法:

使用addr2line工具

结合返汇编文件中的信息输出调用栈符号。当然还有更好的想法,已经在路上了.接下来详细介绍这俩中方法的使用

3.1 addr2line工具

可以看到shell输出的信息中包含addr2line需要的信息,我们将其拷贝,然后在当前rtthread.elf目录下使用该工具,我的环境中在wsl有该工具,则使用该工具打开,打开后将之前复制的信息拷贝至终端执行,输出如下:

3e15c96e-72f7-11ef-bb4b-92fbcf53809c.png

可以看到输出的信息已经很丰富了,在调试过程中还是很有帮助的。

3.2 结合反汇编图形化

在RT-Studio配置输出反汇编命令

3e2332f2-72f7-11ef-bb4b-92fbcf53809c.png3e2f7206-72f7-11ef-bb4b-92fbcf53809c.png

在反汇编文件同级目录下创建一个txt文本将shell输出的信息拷贝至txt文本

3e485276-72f7-11ef-bb4b-92fbcf53809c.png

rvbacktrace.txt中的内容如下:

3e513bb6-72f7-11ef-bb4b-92fbcf53809c.png

然后点击工程目录下的RVBacktrace.py

3e5e344c-72f7-11ef-bb4b-92fbcf53809c.png

运行界面:

3e76bb48-72f7-11ef-bb4b-92fbcf53809c.png

这里我们输入rvbacktrace.txt与rtthread.asm的路径,为了方便将它俩放在了同一目录下,

复制它两的路径并输入到上述终端中:

3e8e8264-72f7-11ef-bb4b-92fbcf53809c.png

运行结果:

3ea43974-72f7-11ef-bb4b-92fbcf53809c.png

同时会自动生成html文件,以表格的形似输出栈回溯信息,该文件在生成后自动打开。

3ebeaf66-72f7-11ef-bb4b-92fbcf53809c.png

上述是第一次运行,如果后续有其他的栈回溯信息,我们只需要将shell输出的信息拷贝至之前创建的txt文本并保存,上述图表就会自动更新,即在完成第一次操作后,后续只需要将shell输出的新信息拷贝至txt文本即可。

如果需要修改txt文本的路径或者反汇编的路径,运行源码下的clean.py后清除中间文件,重新按上述步骤执行即可。

感觉不错的小伙伴点个小星星叭,一起向RT-Thread/RISC-V奔跑!

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

    关注

    0

    文章

    97

    浏览量

    11532
  • RISC-V
    +关注

    关注

    44

    文章

    2141

    浏览量

    45702
  • RTThread
    +关注

    关注

    7

    文章

    132

    浏览量

    40677
收藏 人收藏

    评论

    相关推荐

    什么是RISC-V

    siFive搞RISC-V 赛昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不问有什么用,RISC-V目前的能力来说,工
    发表于 02-02 10:41

    RISC-V Summit China 2024 | 青稞RISC-V+接口PHY,赋能RISC-V高效落地

    RISC-V中国峰会在杭州圆满落幕。峰会现场,沁恒围绕“青稞RISC-VMCU+USB/蓝牙/以太网芯片,赋能RISC-V高效落地”的主题,通过首日主会场演讲、展台互动等形式,系统
    发表于 08-30 17:37

    什么是RISC-VRISC-V指令具有哪些特点应用?

    什么是RISC-VRISC-V指令具有哪些特点应用?自己怎么才能设计出设计一套指令集?
    发表于 10-14 09:05

    risc-v是什么意思

    过去的所有扩展。RISC-V的特殊之处在于他使用模块化的ISA。  所谓模块化ISA,RISC-V的核心是一个名为RV32I的基础ISA,运行一个完整的软件。RV32I是固定的,永远不会改变。这为
    发表于 03-30 16:40

    FreeRTOS与RISC-V——适用于RISC-V的FreeRTOS概述

    1.1简介FreeRTOS中面向RISC-V的接口是易于拓展的,其提供了一系列基本的接口,用于操作适用于所有RISC-V实现中的通用寄存器,以及一系列的宏来处理特定的硬件实现中涉及到的特性以及拓展
    发表于 04-09 09:26

    RISC-V 发展

    通用寄存器,每个通用寄存器都有各自的用途。例如x2是作为sp指针、a0-a1用来保存函数参数或返回值。x0寄存器被硬编码为了0,就是个0值寄存器。ABI名称相当于这些通用寄存器的别名,在RISC-V
    发表于 04-14 10:18

    开始了解RISC-V的好

    RISC-V ISA追求主义,这是一个错误。因为他们过分强调了最小化指令数量,规范化编码等。这种主义的追求导致错误的正交性(例如将相
    的头像 发表于 01-08 17:34 1972次阅读

    RISC-V规范的演进 RISC-V何时爆发?

    RISC-V的关注度越来越高,开源的理念也正在被越来越多的开发者和公司接受。对于尚不成熟的RISC-V而言,无论是规范和技术的演进还是生态的建设,还有人才和专利都还有不小挑战。2021年RISC-V
    的头像 发表于 02-11 10:10 3020次阅读

    RISC-V学习笔记【1】RISC-V概述

    国产处理器芯片起步较晚,从2013年至今,集成电路每年的进口额均超过了 2000 亿美元。RISC-V和AI(人工智能)芯片是我国最有希望突破的领域之一。RISC-V使用的领域还是对于生态依赖比较
    发表于 11-24 09:28 2475次阅读

    openEuler加入RISC-V Landscape

    北京时间2023年3月8日,openEuler加入RISC-V Landscape。 此次加入RISC-V Landscape,意味着openEuler在对RISC-V架构的生态适配
    的头像 发表于 03-13 18:40 1208次阅读

    RISC-VRISC-V AI的未来(特邀讲座)

    主题演讲:RISC-VRISC-V AI的未来(特邀讲座)ppt分享
    发表于 07-14 17:15 11次下载

    RISC-V设计支持工具,支持RISC-V技术的基础

    RISC-V设计支持工具,支持RISC-V技术的基础 ppt分享
    发表于 07-14 17:15 12次下载

    汤谷智能发布全RISC-V硬件仿真加速系统方案

    面向高性能计算、IoT、无线接入、音频、多媒体、消费类电子、边缘计算等迅速扩展的RISC-V使用场景,汤谷智能发布了基于自研Logic Giant原型验证硬件平台的全RISC-V硬件仿真加速系统方案。
    的头像 发表于 01-25 10:29 1147次阅读
    汤谷智能发布全<b class='flag-5'>栈</b><b class='flag-5'>RISC-V</b>硬件仿真加速系统方案

    RISC-V Summit China 2024 青稞RISC-V+接口PHY,赋能RISC-V高效落地

    沁恒在历届峰会上分享RISC-V在MCU领域的创新成果,和大家共同见证了本土RISC-V产业的成长。早在第一届RISC-V中国峰会上,沁恒就公开了青稞RISC-V系列量产芯片的关键技术
    的头像 发表于 08-30 18:18 1073次阅读
    <b class='flag-5'>RISC-V</b> Summit China 2024  青稞<b class='flag-5'>RISC-V</b>+接口PHY,赋能<b class='flag-5'>RISC-V</b>高效落地

    加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未来 !

    加入RISC-VAdvocate行列!我们正在寻找来自世界各地的RISC-V爱好者,通过全球推广和参与,成为支持RISC-V进步的关键参与者。作为一名RISC-VAdvocate,您将
    的头像 发表于 09-10 08:08 105次阅读
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未来 !