From 7453256c2979f5c75cb63d92d6a680cb9baa5749 Mon Sep 17 00:00:00 2001 From: leixin Date: Tue, 25 Apr 2023 01:53:04 +0000 Subject: [PATCH] Add lldb debugging tool guidance Signed-off-by: leixin --- zh-cn/application-dev/tools/lldb-tool.md | 107 +++++++++++++---------- 1 file changed, 62 insertions(+), 45 deletions(-) diff --git a/zh-cn/application-dev/tools/lldb-tool.md b/zh-cn/application-dev/tools/lldb-tool.md index 3bba55aa45..1764dca675 100644 --- a/zh-cn/application-dev/tools/lldb-tool.md +++ b/zh-cn/application-dev/tools/lldb-tool.md @@ -1,75 +1,94 @@ # 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 --line -process attach --name process-name +(lldb) breakpoint set --file --line +(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) -- GitLab