OPTEE的GDB调试技术实战

news2024/7/6 19:07:46

【按语】:如果需要调试OPTEE,那么在远程调试配置中使用GDB可能会很有用。远程调试意味着GDB在您的PC上运行,它可以访问源代码,而被调试的程序在远程系统上运行(在本例中,在QEMU环境的OPTEE中)。本博客来探讨OPTEE的GDB调试技术实战。


要调试使用GDB运行QEMU的TEE内核,需要禁用TEE ASLR(CFG_CORE_ASLR=n)。此外,请注意,如果禁用了优化,则更容易进行调试。除此之外,你还将拥有4个控制台。

• Qemu console
• NW UART console
• SW UART console
• GDB console

除了GDB控制台之外,它们都是在使用QEMU运行OP-TEE时通常会看到/使用的控制台。
1、首先是修改代码中CFG_CORE_ASLR=n,然后编译optee_os,QEMU中相关操作详见optee4.0.0 qemu_v8环境搭建(支持Hafnium),之后启动QEMU,即:make run-only

2、接下来为GDB启动另一个控制台并执行以下操作:

aarch64-linux-gnu-gdb -q

或者gdb-multiarch -q

3、在GDB控制台中连接到QEMU GDB服务器,如下所示(包含的输出显示了您通常会看到的内容)。

4、仍然在GDB控制台中,加载TEE core的符号表文件

5、现在可以为OP-TEE中的任何符号设置断点

6、最后一步是启动引导,也是从GDB控制台启动

此时将在正常世界控制台和安全世界UART控制台中看到UART输出。例如,如果你现在运行optee_example_hello_world,那么你很快就会遇到我们之前设置的断点,你会在GDB控制台中看到这样的内容:

Normal_world命令执行后,第一个断点生效:

从这里你可以开始使用GDB,单步,读取内存,读取寄存器,打印变量和所有你通常用调试器做的事情。

继续c,第二个断点生效

Normal_world:

Secure_world:

【提示】:有些人发现在调试时查看源代码更容易。您可以启用“TUI模式”以查看GDB中的源代码。要启用该功能,请运行以下命令:

aarch64-linux-gnu-gdb -q -tui

或者gdb-multiarch -q -tui

带有tui功能的调试界面如下,可以看到源码信息:

【结语】:使用本博客中的方法,让你轻松掌握QEMU环境OPTEE的GDB调试技术实战,其他环境使用GDB类似。

OPTEE的其他调试技术参见:OPTEE调试技术汇总

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1617801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React基础知识大汇总

函数组件和类组件 函数组件与类组件有什么区别呢? function getName(params:{name:string}){const count 0;return params.name -count; } getName({name:"test"}) getName({name:"哈哈哈"})getName是一个纯函数,不产生任何副作用…

算法竞赛相关问题总结记录

前言 日常在校生或者是工作之余的同学或多或少都会参加一些竞赛,参加竞赛一方面可以锻炼自己的理解与实践能力,也能够增加自己的生活费,竞赛中的一些方案也可以后续作为自己论文的base,甚至是横向课题的框架。在算法竞赛中算法的差别个人感觉差距都不大&…

区块链钱包开发指南: 探究区块链钱包开发涉及

区块链钱包是连接用户与区块链网络的重要工具,它们不仅提供了安全的存储和管理数字资产的功能,还允许用户进行交易和与区块链上的智能合约进行互动。本文将探究区块链钱包开发涉及的关键方面和技术要点。 1. 区块链钱包类型 区块链钱包可以分为以下几种…

Android Studio查看viewtree

前言:之前开发过程一直看的是手机上开发者选项中的显示布局边界,开关状态需要手动来回切换,今天偶然在Android Studio中弄出了布局树觉得挺方便的。

汽车纵染压制专用液压机比例阀放大器

汽车纵染压制专用液压机比例阀放大器是一种专门用于汽车纵梁拉伸工艺的设备,它也可以用于其他金属薄板的压制成型及校正工艺。该类型的液压机通常具备独立的动力机构和电气系统,采用PLC技术进行控制,以确保操作的准确性和稳定性。除了纵梁拉伸…

文心一言 VS 讯飞星火 VS chatgpt (243)-- 算法导论18.1 1题

一、B树中为什么不允许最小度数 t1?如果要写代码,请用go语言。 文心一言: 在B树中不允许最小度数 t1 的主要原因在于这样会导致树的结构退化为链表,失去了B树作为平衡多路搜索树的优势。当 t1 时,每个非根节点将只能…

openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核

文章目录 openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核269.1 安装openGauss数据库269.2 停止数据库269.3 使用gs_guc工具修改数据库端口、IP等269.4 使用gs_guc工具设置如下参数269.5 执行如下命令以绑核方式启动服务端数据库269.6…

在线教程丨刘强东数字人首秀交易额破5千万!用GeneFace++ 生成实时说话数字人

近日,京东创始人刘强东化身「采销东哥 AI 数字人」,在京东家电家居和超市的采销直播间开启了自己的直播首秀。此次直播活动观看人次超 2 千万,交易总额超 5 千万,充分彰显了AI 数字人在电商直播领域的巨大潜力。 「采销东哥」亮相…

SwiftUI 5.0(iOS 17.0)触摸反馈“震荡波”与触发器模式趣谈

概览 要想创作出一款精彩绝伦的 App,绚丽的界面和灵动的动画并不是唯一吸引用户的要素。有时我们还希望让用户真切的感受到操作引发的触觉反馈,直击使用者的灵魂。 所幸的是新版 SwiftUI 原生提供了实现触觉震动反馈的机制。在介绍它之后我们还将进一步…

prompt提示词:小红书爆款标题提示词,让AI 帮你生成吸睛的标题

目录 小红书爆款标题提示词效果展示:提示词: 小红书爆款标题提示词 一篇文章若缺少了吸引人的标题,就如同失去了灵魂的躯壳,失去了与读者心灵相通的桥梁,上次发表了一篇小红书爆款文案生成助手 提示词,大家…

Linux之安装Nginx

目录 传送门前言一、快速安装二、反向代理语法1、基本语法2、location语法1. 基本语法2. 匹配规则3. 修饰符4. 权重5. 嵌套location6. 其他指令7.案例 三、配置反向代理 传送门 SpringMVC的源码解析(精品) Spring6的源码解析(精品&#xff0…

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型。在食用油产业中,数字化转型已成为提升生产效率、优化供应链管理、确保产品质量和满足消费者需求的关键。食用油5G智能工厂数字孪生可视化平台作为这一转型的重要工具,正在推动…

【来自理工科的独有浪漫-给crush一朵夏天的雪花】--对于有限差分法的理解

目录 有限差分法相关参考资料先上手看代码,然后理解数理概念有限差分法的理解Q: 什么是有限差分法? 代码中涉及的知识点1. 划分网格对于求解二维偏微分方程的作用2. 临近点对于求解偏微分方程的作用3. 有限差分方法中的中心差分公式 总结 写在前面&#…

喜报 | 一致认可!擎创科技连续6年获“鑫智奖”专家推荐TOP10优秀解决方案

为展示金融企业数据管理和数据平台智能化转型成果,分享大数据和人工智能在风控、营销、产品、运营等场景的落地实践,探讨“金融科技数据智能”的创新应用和未来发展,在全球金融专业人士协会的支持下,金科创新社主办了“鑫智奖第六…

Apple II首席设计师为中国家庭设计,鹿客指脉锁S6 Max引领科技美学

智能门锁设计正在步入一个科技与艺术交织的美学时代。鹿客科技认为,智能门锁的设计理念是将锁视为人类与仿生形状之间的接口,将门视为几何建筑的一部分,产品设计应该通过提供诱人且用户友好的“触摸和感觉”来传达这种转变。 鹿客近日发布的最…

(C语言入门)数组

目录 什么是数组? 数组: 数组的使用: 数组的初始化: 数组名: 数组案例: 一维数组的最大值: 一维数组的逆置: 数组和指针: 通过指针操作数组元素: …

springCloud集成activiti5.22.0流程引擎

springCloud集成activiti5.22.0流程引擎 点关注不迷路,欢迎再访! 精简博客内容,尽量已行业术语来分享。 努力做到对每一位认可自己的读者负责。 帮助别人的同时更是丰富自己的良机。 小编最近工作需要涉及到流程,由于网络上5.22版…

AD--SSL卸载--单向认证和双向认证

一.SSL卸载单向认证 1.添加SSL证书 2.添加SSL卸载策略 由于是测试模拟环境,有些效果表现不出来,配置不了卸载策略 3.起虚拟服务,服务类型选择https或者ssl ,选择SSL卸载策略 实验效果:打开网页进入AD抓包发现,客户端和…

MySQL及SQL语句

SQL语句 数据库相关概念数据查询语言(DQL)基本查询数据类型条件查询多表查询子查询 数据操作语言(DML)数据定义语言(DDL)数据控制语言(DCL)MySQL数据库约束视图练习题 数据库相关概念…