首页 > 其他分享 >TEE 开发 opteeos panic 排查方法

TEE 开发 opteeos panic 排查方法

时间:2024-05-14 16:52:39浏览次数:16  
标签:00 .. TEE T45 opteeos panic TC

如果遇到bl32 panic ,如果能明显感觉到错误的发生位置,可以使用加EMSG 打印的方式debug 

但是遇到压测的时候发生的panic, 这样是低效的,而且加上log还会影响时序,影响压测结果。

下面给出一个终极debug 方式,这样的判断panic 发生的函数位置, 百试不爽。

举例:

[  266.388550][0 T45    ..] [TEE] E/TC:1 00 Core data-abort at address 0x0 (translation fault)
[  266.396969][0 T45    ..] [TEE] E/TC:1 00  fsr 0x00000805  ttbr0 0x053bc06a  ttbr1 0x0539006a  cidr 0x4
[  266.406166][0 T45    ..] [TEE] E/TC:1 00  cpu #1          cpsr 0x00000133
[  266.413017][0 T45    ..] [TEE] E/TC:1 00  r0 0x00000000      r4 0x00040000    r8 0x0025f2f8   r12 0xfffbb5cc
[  266.422803][0 T45    ..] [TEE] E/TC:1 00  r1 0x00000000      r5 0x00000000    r9 0x00197381    sp 0x6b2726e8
[  266.432629][0 T45    ..] [TEE] E/TC:1 00  r2 0x00000010      r6 0x00003fff   r10 0x6b27275c    lr 0x6b1baf97
[  266.442420][0 T45    ..] [TEE] E/TC:1 00  r3 0x00000000      r7 0x00040010   r11 0x00000000    pc 0x6b1edfac
[  266.452131][0 T45    ..] [TEE] E/TC:1 00 TEE load address @ 0x6b1b0000
[  266.458677][0 T45    ..] [TEE] E/TC:1 00 Call stack:
[  266.463541][0 T45    ..] [TEE] E/TC:1 00  0x6b1edfac
[  266.468452][0 T45    ..] [TEE] E/TC:1 00  0x6b1baf97
[  266.473422][0 T45    ..] [TEE] E/TC:1 00  0x6b1bde0d
[  266.478486][0 T45    ..] [TEE] E/TC:1 00  0x6b1efbbb
[  266.483302][0 T45    ..] [TEE] E/TC:1 00  0x6b1bb81b
[  266.488213][0 T45    ..] [TEE] E/TC:1 00  0x6b1ba324

bl32 会在panic的时候自动print 函数的调用栈,我们可以根据调用栈追查api

可以知道最近的两个api是 0x6b1baf97 , 0x6b1edfac 

然后根据 TEE load address @ 0x6b1b0000为基址算出 偏移量,为 0xaf97 和 0x3dfac 
我们找到 0xaf97 属于secmon_storage_shm_unlock 函数范围之内

 找到0x3dfac  属于memset.c 第110 行发生panic, 发现他是一个memset 函数

 

于是知道 secmon_storage_shm_unlock  内部调用了 memset api的时候发生了panic 

这样直接定位出了crash的位置

 

标签:00,..,TEE,T45,opteeos,panic,TC
From: https://www.cnblogs.com/coversky/p/18191681

相关文章

  • TEE 开发 禁止大内存TA加载
    我们会经常遇到一些TA,把自己的TA_STACK_SIZE和TA_HEAP_SIZE 设置的太大,从而无法成功被load的情况。因为taram一共就这些内存,但是TA的这两个宏配置是由用户去决定的,为了避免这些TAowner方便自己害了他人考虑,我们在可以做出如下限制。在bl32里面loadta的时候做......
  • Go语言异常处理:自定义错误【errors.New+panic】
    程序本身抛出的异常信息不是太友好,我们可以自定义错误或者异常的信息,需要使用errors包中的New函数来包装一下异常或错误信息;在使用内置函数panic(err),把异常信息后面的程序执行终止掉,因为再执行后面的程序也没有意义了。 packagemainimport"fmt"import"errors"funcma......
  • The Steele Prize
    OndayIfoundaninterestingprizeestablishedbyAMS,calledTheSteelePrize,seeams.org/prizes-awards.''From1970to1976oneormoreprizeswereawardedeachyearforoutstandingpublishedmathematicalresearch;mostfavorableconsiderati......
  • 使用Git bash切换Gitee、GitHub多个Git账号
    使用Gitbash切换Gitee、GitHub多个Git账号​ Git是分布式代码管理工具,使用命令行的方式提交commit、revert回滚代码。这里介绍使用Gitbash软件来切换Gitee、GitHub账号。​ 假设在gitee.com上的邮箱是[email protected]、用户名为alice;在github上的邮箱是[email protected]、......
  • ssh修改端口后,gitee(git)连接不上
    将本服务器的ssh端口22改为1068后,gitpull和gitpush时,出现:ssh:connecttohostgitee.comport[端口]:Connectiontimedout错误目测是因为,gitee的链接,使用的是SSH协议,但是服务器的端口由22变为了1068,所以请求gitee服务器时,也由22变更为了1068,所以只要SSH协议的链接加上22......
  • IfcStateEnum
    IfcStateEnum类型定义IfcStateEnum枚举标识对象的状态或可访问性(例如,读/写、锁定)。有效的枚举为:IFC2.0中的新枚举。IFC2x3这个概念最初在IFC2.0中被引入为类型为BINARY(3)FIXED的IfcModifiedFlag,并在R2x3中被修改为枚举。它最初是作为为部分模型交换提供便利的第一步引入的,主要用......
  • DC-4-teehee提权
    主机信息实验过程详情介绍请参考下载地址任务目标:拿下系统的root账户靶机下载地址:https://www.vulnhub.com/entry/dc-4,313/主机信息DC4:192.168.75.151Kali:192.168.75.150实验过程先发现内网存活主机arp-scan--interfaceeth0192.168.75.1/24然后查看靶机开放的......
  • Linux(centos7)实现git push到gitee
    1.找到需要提交的文夹目录cd目的目录2.初始化git仓库gitinit看见最下面的InitializedemptyGitrepositoryin就是初始化成功了3.配置提交人信息gitconfig--globaluser.name“你想填的名字”gitconfig--globaluser.email"你的邮箱"最后查看一下是否正确gi......
  • python3.12.3下使用flask-script的Command报错AttributeError: module 'inspect' has
    错误如下图:问题原因:因为inspect.getargspec在3.11+中已弃用。翻看源码如下图解决方案:解决方法是使用inspect.fullargspec代替,并添加3个虚拟变量,因为getfullargspec将返回7个项目而不是4个:args,varargs,keywords,defaults,foo,foo1,foo2=inspect.getf......
  • 【Qt 专栏】Qt Creator 的 git 配置 & 上传到gitee
    1.进入到Qt项目文件夹内,打开“GitBashHere”2.初始化,在“GitBashHere”中输入  gitinit3.加入所有文件,在“GitBashHere”中输入 gitadd. (需要注意,gitadd后面还有一个点)4.添加备注,gitcommit-m"备份"5.推送本地仓库到gitee(需要事先在gitee上创建好本......