深圳哪里做网站,校园网站建设素材,深圳市交易建设工程交易服务中心网站,企业网站建设单位安全之安全(security)博客目录导读
OPTEE调试技术汇总
目录
一、序言
二、Gprof使用
三、Gprof实现
1、Call graph information
2、PC distribution over time 一、序言 本文描述了如何使用gprof对TA进行概要分析。 配置选项CFG_TA_GPROF_SUPPORTy使OP-TEE能够从在用户模…安全之安全(security²)博客目录导读
OPTEE调试技术汇总
目录
一、序言
二、Gprof使用
三、Gprof实现
1、Call graph information
2、PC distribution over time 一、序言 本文描述了如何使用gprof对TA进行概要分析。 配置选项CFG_TA_GPROF_SUPPORTy使OP-TEE能够从在用户模式下运行并使用-pg编译的TA收集分析信息。一旦收集到分析数据将会被格式化为gmon.out格式通过RPC发送给tee- supplant因此它们可以保存到磁盘稍后由标准gprof工具进行处理和显示。
二、Gprof使用 使用CFG_TA_GPROF_SUPPORTy构建OP-TEE OS。还可以设置CFG_ULIBS_MCOUNTy来检测optee_os中包含的用户TA库(例如libutee和libutils)。 使用-pg构建用户TA例如enable: CFG_TA_MCOUNTy来检测整个用户TA。注意instrumented ta有一个更大的.bss段。32位TA的内存开销是.text大小的1.36倍64位TA的内存开销是.text大小的1.77倍(详细信息请参阅TA链接器脚本:TA /arch/arm/ TA .ld. s)。 正常运行应用程序。当最后一个会话退出时tee- supplicant将分析数据写入/tmp/gmon-ta_uuid.out。如果该文件已经存在则附加一个数字如:gmon-ta_uuid.1.out。 在TA ELF文件上运行gprof分析输出gprof ta_uuid.elf gmon-ta_uuid.out。
三、Gprof实现 部分分析是在libutee中实现的。另一部分由伪ta (core/arch/arm/sta/gprof.c)在TEE内核中完成。收集两类数据
1、Call graph information 当使用-pg开关编译TA源文件时编译器会在每个函数序言中生成额外的代码以调用检测入口点(__gnu_mcount_nc或_mcount具体取决于体系结构)。每次调用一个instrumented的函数时libutee记录一对程序计数器(一个是调用者另一个是被调用者)以及调用图中这个特定弧线的次数。
2、PC distribution over time 当一个instrumented的TA启动时libutee调用伪TA为当前会话启动PC采样。采样数据由TEE核心直接写入用户空间缓冲区。 每当TA执行中断时TEE核心记录当前程序计数器的值并建立程序位置的直方图(即PC的每个值所花费的相对时间量)。gprof工具稍后将使用它来派生每个函数所花费的时间。假设采样率大致恒定通过跟踪执行用户TA代码所花费的时间并将中断数除以总时间来计算采样率。 记录调用图和采样数据的分析缓冲区分配在TA的.bss部分中。只有在检测TA时链接器脚本才会保留一些空间。
参考Gprof — OP-TEE documentation documentation