概述
LLDB(Low Lever Debugger)是新一代高性能调试器。详细说明参考 LLDB官方文档 。
当前OpenHarmony中的LLDB工具是在 llvm15.0.4 基础上适配演进出来的工具,是HUAWEI DevEco Studio工具中默认的调试器,支持调试C和C++应用。
工具获取
可通过OpenHarmony的SDK获取,lldb工具在SDK中的路径为\ohos-sdk[system]\native\llvm,其中system可选windows/linux/darwin。
以Windows平台为例,解压SDK后,lldb.exe的存放路径为\ohos-sdk\windows\native\llvm\bin。
功能列表
此处列举LLDB调试器支持的部分功能,更多功能与相关命令可见:LLDB工具使用指导 。
- 记录日志
- 断点管理
- 观察点管理
- 表达式处理
- 查看变量
- 进程/线程管理
- 汇编处理
- 源码信息获取
- 信号处理
- 进程启动
- attach进程
应用场景
- 本地调试
- Linux x86_64本地调试。
LLDB支持在Linux x86_64环境上调试C和C++应用。 - Mac桌面本地调试。
LLDB支持在Mac桌面(包括Mac x86_64和M1系统)调试C和C++应用。
- Linux x86_64本地调试。
- 远程调试
- 基于HUAWEI DevEco Studio的远程调试。
LLDB支持基于HUAWEI DevEco Studio在Windows和Mac桌面连接OpenHarmony设备或模拟器远程调试Native C++应用,即使用HUAWEI DevEco Studio的Debug调试功能。 - 桌面连接OpenHarmony设备远程调试。
- 基于HUAWEI DevEco Studio的远程调试。
LLDB支持在Windows、Mac桌面和Linux x86_64环境直连OpenHarmony设备远程调试C和C++应用。
使用指导-本地调试
说明: Linux x86_64或Mac本地调试步骤一致。
使用步骤
-
使用LLDB工具启动应用并进行调试。
此处以在Linux x86_64环境调试一个使用clang编译器生成的带有调试信息的可执行文件a.out为例。
-
获取到与LLDB同一版本的clang编译器生成的带有调试信息的可执行文件a.out。
-
运行LLDB工具,并指定要调试的文件为a.out。
./lldb a.out
- 在代码中main函数处设置断点。
(lldb) b main
- 运行应用,使其停在断点处。
(lldb) run
5. 继续运行应用。
(lldb) continue
- 列出所有断点。
(lldb) breakpoint list
- 显示当前帧的参数和局部变量。
(lldb) frame variable
-
按需执行调试命令进行后续调试操作。
-
退出调试。
(lldb) quit
- 使用LLDB工具调试已经启动的应用。
此处以在Mac环境调试一个使用clang编译器生成的带有调试信息和用户输入的可执行文件a.out为例。
- 在命令行窗口1启动应用。(窗口会返回一条信息“Please input a number of type int”)
./a.out
- 在命令行窗口2运行LLDB工具。
./lldb
- attach应用。
(lldb) process attach --name a.out
- 在hello.cpp的第10行设置断点
(lldb) breakpoint set --file hello.cpp --line 10
- 在命令行窗口1,输入一个int类型的数。
88
- 在命令行窗口2继续运行应用,使应用停在断点处。
(lldb) continue
-
按需执行调试命令进行后续调试操作。
-
detach应用。
(lldb) detach
- 退出调试。
(lldb) quit
说明: 步骤3和4可以调换顺序执行。
使用指导-远程调试
说明:
- 远程调试时需要lldb-server和lldb配合使用。
- Windows,Linux x86_64和Mac远程调试步骤一致。
使用步骤
此处以在Windows平台连接arm架构OpenHarmony设备(如:RK3568开发板)进行远程调试为例。
说明: 其中/data/local/tmp为设备上指定的目录。
8080为监听端口,可自定义。
请确保设备上的lldb-server和a.out有可执行权限。
- 打开命令行窗口1,将lldb-server和可执行文件a.out推送到设备。(a.out是使用clang编译器编译hello.cpp生成的。)
hdc file send lldb-server /data/local/tmp
hdc file send a.out /data/local/tmp
- 运行lldb-server。
hdc shell ./data/local/tmp/lldb-server p --server --listen "*:8080"
- 打开命令行窗口2,运行二进制文件lldb。
./lldb
- 在LLDB命令行窗口进行远端选择与连接。
(lldb) platform select remote-ohos
(lldb) platform connect connect://localhost:8080
- 指定要调试的设备上的二进制文件a.out。
(lldb) target create /data/local/tmp/a.out
- 在代码中main函数处设置断点。
(lldb) b main
- 启动应用。
(lldb) run
- 查看当前目标进程的源码。
(lldb) source list
-
按需执行调试命令进行后续调试操作。
-
退出调试。
(lldb) quit
码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线。大家可以进行参考学习:https://qr21.cn/FV7h05
①全方位,更合理的学习路径:
路线图包括ArkTS基础语法、鸿蒙应用APP开发、鸿蒙能力集APP开发、次开发多端部署开发、物联网开发等九大模块,六大实战项目贯穿始终,由浅入深,层层递进,深入理解鸿蒙开发原理!②多层次,更多的鸿蒙原生应用:
路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。③实战化,更贴合企业需求的技术点:
学习路线图中的每一个技术点都能够紧贴企业需求,经过多次真实实践,每一个知识点、每一个项目,都是码牛课堂鸿蒙研发团队精心打磨和深度解析的成果,注重对学生的细致教学,每一步都确保学生能够真正理解和掌握。
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:https://qr21.cn/FV7h05
如何快速入门:
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr21.cn/FV7h05
大厂鸿蒙面试题::https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向