提交 7453256c 编写于 作者: L leixin

Add lldb debugging tool guidance

Signed-off-by: Nleixin <leixin19@huawei.com>
上级 cff396b1
# 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)
>
lldb工具在SDK中的路径:**\ohos-sdk\\\[system]\native\llvm
> **说明:system可选windows/linux/darwin**
具体使用方法:以windows平台为例
通过OpenHarmony的SDK获取,从以下链接获取SDK:http://ci.openharmony.cn/dailys/dailybuilds
lldb工具在SDK中的路径:
```
\ohos-sdk\[system]\native\llvm
```
其中system可选windows/linux/darwin。
以windows平台为例,解压SDK后,lldb.exe的存放路径为:
```
\ohos-sdk\windows\native\llvm\bin
```
- 解压sdk,直接在lldb工具所在路径\**\ohos-sdk\windows\native\llvm\bin运行lldb.exe即可。
## 支持平台与架构
>
### 本地调试:
- linux平台上调试
- windows平台上调试
- mac(M1)平台上调试
- mac(x86)平台上调试
### 本地调试
#### linux平台调试使用示例
1.获取到与lldb同一版本的clang编译器生成的带有调试信息的可执行文件filename
>
### 远程调试:
2.指定调试的文件名,终端窗口执行命令:
```
./lldb filename
```
3.在代码中main函数处打断点,lldb界面下执行命令:
```
(lldb) b main
```
4.运行程序,使程序停在断点处,lldb界面下执行命令:
```
(lldb) run
```
5.执行后续调试操作
### 远程调试
> **说明:远程调试时需要lldb-server和lldb配合使用**
- windows平台RK3568调试(arm架构调试)
- windows平台原型机调试(aarch64架构调试)
- windows平台ohos设备调试(arm架构调试)
- windows平台ohos设备调试(aarch64架构调试)
- windows平台模拟器调试
- mac(M1)平台RK3568调试(arm架构调试)
- mac(M1)平台原型机调试(aarch64架构调试)
- mac(M1)平台ohos设备调试(arm架构调试)
- mac(M1)平台ohos设备调试(aarch64架构调试)
- mac(M1)平台模拟器调试
- mac(x86)平台RK3568调试(arm架构调试)
- mac(x86)平台原型机调试(aarch64架构调试)
- mac(x86)平台ohos设备调试(arm架构调试)
- mac(x86)平台ohos设备调试(aarch64架构调试)
- mac(x86)平台模拟器调试
- linux平台RK3568调试(arm架构调试)
- linux平台原型机调试(aarch64架构调试)
>
典型使用场景:linux平台连接arm架构RK3568远程调试
>
RK3568设备上运行可执行文件:
>
- linux平台ohos设备调试(arm架构调试)
- linux平台ohos设备调试(aarch64架构调试)
#### 远程调试使用示例
linux平台连接arm架构ohos设备远程调试
1.设备上运行带有调试信息的可执行文件:
```
./filename
```
2.将lldb-server推送到设备,运行lldb-server。
命令行窗口1:
>
将lldb-server推送到设备,运行lldb-server,命令行窗口1:
>
```
hdc file send lldb-server /data/local/tmp
hdc shell ./data/local/tmp/lldb-server p --server --listen "*:8080"
```
> **说明:其中/data/local/tmp为设备上指定的目录,8080为监听端口,均可自定义**
>
启动lldb,选择远端ohos并连接,命令行窗口2:
3.在另一窗口启动lldb,选择远端ohos并连接。
命令行窗口2:
```
./lldb
(lldb) platform select remote-ohos
(lldb) platform connect connect://localhost:8080
```
打断点,以及后续调试操作,命令行窗口2:
4.打断点,以及后续调试操作。
命令行窗口2:
```
breakpoint set --file <filename> --line <linenum>
process attach --name process-name
(lldb) breakpoint set --file <filename> --line <linenum>
(lldb) process attach --name process-name
```
>
## 调试器提供功能
- 将程序加载到LLDB
## lldb调试器提供功能列表
- 将程序加载到lldb
- 设置断点
- 设置观察点
- 启动或attach到程序
......@@ -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/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)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册