Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
7453256c
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7453256c
编写于
4月 25, 2023
作者:
L
leixin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add lldb debugging tool guidance
Signed-off-by:
N
leixin
<
leixin19@huawei.com
>
上级
cff396b1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
62 addition
and
45 deletion
+62
-45
zh-cn/application-dev/tools/lldb-tool.md
zh-cn/application-dev/tools/lldb-tool.md
+62
-45
未找到文件。
zh-cn/application-dev/tools/lldb-tool.md
浏览文件 @
7453256c
# LLDB调试器使用指导
# LLDB调试器使用指导
## 概述
## 概述
LLDB(Low Lever Debugger)是新一代高性能调试器。当前Openharmony中的LLDB工具是在
[
llvm15.0.4
](
https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.4
)
基础上适配演进出来的工具。LLDB支持在桌面和Openharmony设备或模拟器上调试。
LLDB(Low Lever Debugger)是新一代高性能调试器。
当前Openharmony中的LLDB工具是在
[
llvm15.0.4
](
https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.4
)
基础上适配演进出来的工具,支持在桌面和Openharmony设备或模拟器上调试。
## 工具获取
## 工具获取
通过OpenHarmony的SDK获取,
[
获取路径
](
http://ci.openharmony.cn/dailys/dailybuilds
)
通过OpenHarmony的SDK获取,从以下链接获取SDK:http://ci.openharmony.cn/dailys/dailybuilds
>
lldb工具在SDK中的路径:
**
\o
hos-sdk
\\\[
system]
\n
ative
\l
lvm
lldb工具在SDK中的路径:
> **说明:system可选windows/linux/darwin**
```
具体使用方法:以windows平台为例
\ohos-sdk\[system]\native\llvm
```
其中system可选windows/linux/darwin。
以windows平台为例,解压SDK后,lldb.exe的存放路径为:
```
\ohos-sdk\windows\native\llvm\bin
```
-
解压sdk,直接在lldb工具所在路径
\*
*
\o
hos-sdk
\w
indows
\n
ative
\l
lvm
\b
in运行lldb.exe即可。
## 支持平台与架构
## 支持平台与架构
>
### 本地调试:
-
linux平台上调试
### 本地调试
-
windows平台上调试
#### linux平台调试使用示例
-
mac(M1)平台上调试
1.
获取到与lldb同一版本的clang编译器生成的带有调试信息的可执行文件filename
-
mac(x86)平台上调试
>
2.
指定调试的文件名,终端窗口执行命令:
### 远程调试:
```
./lldb filename
```
3.
在代码中main函数处打断点,lldb界面下执行命令:
```
(lldb) b main
```
4.
运行程序,使程序停在断点处,lldb界面下执行命令:
```
(lldb) run
```
5.
执行后续调试操作
### 远程调试
> **说明:远程调试时需要lldb-server和lldb配合使用**
> **说明:远程调试时需要lldb-server和lldb配合使用**
-
windows平台
RK3568
调试(arm架构调试)
-
windows平台
ohos设备
调试(arm架构调试)
-
windows平台
原型机
调试(aarch64架构调试)
-
windows平台
ohos设备
调试(aarch64架构调试)
-
windows平台模拟器调试
-
windows平台模拟器调试
-
mac(M1)平台
RK3568
调试(arm架构调试)
-
mac(M1)平台
ohos设备
调试(arm架构调试)
-
mac(M1)平台
原型机
调试(aarch64架构调试)
-
mac(M1)平台
ohos设备
调试(aarch64架构调试)
-
mac(M1)平台模拟器调试
-
mac(M1)平台模拟器调试
-
mac(x86)平台
RK3568
调试(arm架构调试)
-
mac(x86)平台
ohos设备
调试(arm架构调试)
-
mac(x86)平台
原型机
调试(aarch64架构调试)
-
mac(x86)平台
ohos设备
调试(aarch64架构调试)
-
mac(x86)平台模拟器调试
-
mac(x86)平台模拟器调试
-
linux平台RK3568调试(arm架构调试)
-
linux平台ohos设备调试(arm架构调试)
-
linux平台原型机调试(aarch64架构调试)
-
linux平台ohos设备调试(aarch64架构调试)
>
典型使用场景:linux平台连接arm架构RK3568远程调试
#### 远程调试使用示例
>
RK3568设备上运行可执行文件:
linux平台连接arm架构ohos设备远程调试
>
1.
设备上运行带有调试信息的可执行文件:
```
```
./filename
./filename
```
```
2.
将lldb-server推送到设备,运行lldb-server。
命令行窗口1:
>
将lldb-server推送到设备,运行lldb-server,命令行窗口1:
>
```
```
hdc file send lldb-server /data/local/tmp
hdc file send lldb-server /data/local/tmp
hdc shell ./data/local/tmp/lldb-server p --server --listen "*:8080"
hdc shell ./data/local/tmp/lldb-server p --server --listen "*:8080"
```
```
> **说明:其中/data/local/tmp为设备上指定的目录,8080为监听端口,均可自定义**
> **说明:其中/data/local/tmp为设备上指定的目录,8080为监听端口,均可自定义**
>
启动lldb,选择远端ohos并连接,命令行窗口2:
3.
在另一窗口启动lldb,选择远端ohos并连接。
命令行窗口2:
```
```
./lldb
./lldb
(lldb) platform select remote-ohos
(lldb) platform select remote-ohos
(lldb) platform connect connect://localhost:8080
(lldb) platform connect connect://localhost:8080
```
```
打断点,以及后续调试操作,命令行窗口2:
4.
打断点,以及后续调试操作。
命令行窗口2:
```
```
breakpoint set --file <filename> --line <linenum>
(lldb)
breakpoint set --file <filename> --line <linenum>
process attach --name process-name
(lldb)
process attach --name process-name
```
```
## lldb调试器提供功能列表
-
将程序加载到lldb
>
## 调试器提供功能
-
将程序加载到LLDB
-
设置断点
-
设置断点
-
设置观察点
-
设置观察点
-
启动或attach到程序
-
启动或attach到程序
...
@@ -77,8 +96,6 @@ process attach --name process-name
...
@@ -77,8 +96,6 @@ process attach --name process-name
-
检查线程状态
-
检查线程状态
-
检查栈帧状态
-
检查栈帧状态
其他更多功能参考:
[
LLDB工具使用指导
](
https://gitee.com/xwx1135370/third_party_llvm-project/blob/readme/lldb/README_zh.md
)
## 其他更多功能与具体命令请参考
[
LLDB工具使用指导
](
https://gitee.com/openharmony/third_party_llvm-project/blob/master/lldb/README_zh.md
)
## 具体使用命令
[
LLDB工具使用指导
](
https://gitee.com/xwx1135370/third_party_llvm-project/blob/readme/lldb/README_zh.md
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录