lldb-tool.md 2.9 KB
Newer Older
1 2
# LLDB调试器使用指导
## 概述
L
leixin 已提交
3 4
LLDB(Low Lever Debugger)是新一代高性能调试器。

Z
zengyawen 已提交
5 6
当前OpenHarmony中的LLDB工具是在[llvm15.0.4](https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.4)基础上适配演进出来的工具,支持在桌面和Openharmony设备或模拟器上调试。

7
## 工具获取
L
leixin 已提交
8 9 10 11 12 13 14 15 16 17 18 19
通过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
```
20

21
## 支持平台与架构
22

L
leixin 已提交
23 24 25
### 本地调试
#### linux平台调试使用示例
1.获取到与lldb同一版本的clang编译器生成的带有调试信息的可执行文件filename
26

L
leixin 已提交
27 28 29 30 31 32 33 34 35 36 37 38 39 40
2.指定调试的文件名,终端窗口执行命令:
```
./lldb filename
```
3.在代码中main函数处打断点,lldb界面下执行命令:
```
(lldb) b main
```
4.运行程序,使程序停在断点处,lldb界面下执行命令:
```
(lldb) run
```
5.执行后续调试操作
### 远程调试
41

42
> **说明:远程调试时需要lldb-server和lldb配合使用**
L
leixin 已提交
43 44
- windows平台ohos设备调试(arm架构调试)
- windows平台ohos设备调试(aarch64架构调试)
45
- windows平台模拟器调试
L
leixin 已提交
46 47
- mac(M1)平台ohos设备调试(arm架构调试)
- mac(M1)平台ohos设备调试(aarch64架构调试)
48
- mac(M1)平台模拟器调试
L
leixin 已提交
49 50
- mac(x86)平台ohos设备调试(arm架构调试)
- mac(x86)平台ohos设备调试(aarch64架构调试)
51
- mac(x86)平台模拟器调试
L
leixin 已提交
52 53 54 55 56 57 58 59
- linux平台ohos设备调试(arm架构调试)
- linux平台ohos设备调试(aarch64架构调试)

#### 远程调试使用示例

linux平台连接arm架构ohos设备远程调试

1.设备上运行带有调试信息的可执行文件:
60 61 62 63

```
./filename
```
L
leixin 已提交
64 65 66
2.将lldb-server推送到设备,运行lldb-server。

命令行窗口1:
67

68
```
69
hdc file send lldb-server /data/local/tmp
70 71
hdc shell ./data/local/tmp/lldb-server p --server --listen "*:8080"
```
72
> **说明:其中/data/local/tmp为设备上指定的目录,8080为监听端口,均可自定义**
L
leixin 已提交
73 74 75 76

3.在另一窗口启动lldb,选择远端ohos并连接。

命令行窗口2:
77 78 79 80 81 82

```
./lldb
(lldb) platform select remote-ohos
(lldb) platform connect connect://localhost:8080
```
L
leixin 已提交
83 84 85
4.打断点,以及后续调试操作。

命令行窗口2:
86 87

```
L
leixin 已提交
88 89
(lldb) breakpoint set --file <filename> --line <linenum>
(lldb) process attach --name process-name
90
```
L
leixin 已提交
91 92
## lldb调试器提供功能列表
- 将程序加载到lldb
93 94 95 96 97 98 99
- 设置断点
- 设置观察点
- 启动或attach到程序
- 控制程序的执行
- 检查线程状态
- 检查栈帧状态

L
leixin 已提交
100 101
## 其他更多功能与具体命令请参考
[LLDB工具使用指导](https://gitee.com/openharmony/third_party_llvm-project/blob/master/lldb/README_zh.md)
102