LLDB的简单使用

  1. iOS5后苹果公司在xcode中集成了LLDB取代了之前的GDB.
  2. 有很多快捷键,支持别名设置,并且用户可以通过Python进行扩展。
    学习资料:
    a.查看apple developer视频,407 WWDC 2013: Debugging with Xcode. 413 WWDC 2013: Advanced Debugging with LLDB.
    b.)查看apple developer官方文档链接
    c.查看LLDB的官方文档链接详解
### 在Linux命令行中启动和使用LLDB的步骤 在 Linux 环境下,LLDB 是一个强大的调试工具,可以用于调试 C、C++ 和其他语言编写的程序。以下是启动和使用 LLDB 的详细步骤: #### 1. 安装 LLDB 确保系统已安装 LLDB。如果未安装,可以通过包管理器进行安装。例如,在基于 Debian 的系统上,可以运行以下命令来安装 LLDB: ```bash sudo apt update sudo apt install lldb ``` 这将安装最新版本的 LLDB[^3]。 #### 2. 启动 LLDB LLDB 可以通过命令行直接启动。进入目标程序所在的目录后,输入以下命令启动 LLDB 并加载可执行文件: ```bash lldb <program_name> ``` 例如,如果要调试名为 `my_program` 的程序,可以运行: ```bash lldb my_program ``` 启动后,LLDB 将进入交互式界面,提示符为 `(lldb)`[^1]。 #### 3. 设置断点 在调试过程中,设置断点是非常重要的一步。可以通过以下命令设置断点: - 按函数名设置断点: ```bash breakpoint set --name <function_name> ``` 例如,设置一个名为 `main` 的函数断点: ```bash breakpoint set --name main ``` - 按行号设置断点: ```bash breakpoint set --file <filename> --line <line_number> ``` 例如,在文件 `main.cpp` 的第 10 行设置断点: ```bash breakpoint set --file main.cpp --line 10 ``` #### 4. 运行程序 设置好断点后,可以运行以下命令启动程序: ```bash run [arguments] ``` 例如,如果程序需要参数 `arg1` 和 `arg2`,可以运行: ```bash run arg1 arg2 ``` #### 5. 调试操作 在程序运行到断点时,可以使用以下常用命令进行调试: - **继续运行**:`continue` 或 `c` - **单步执行**:`next` 或 `n` - **单步进入函数**:`step` 或 `s` - **查看变量值**:`frame variable <variable_name>` 或 `print <variable_name>` - **查看调用栈**:`thread backtrace` 或 `bt` #### 6. 附加到正在运行的进程 如果需要调试已经在运行的程序,可以使用以下命令将 LLDB 附加到指定进程: ```bash process attach --pid <process_id> ``` 例如,附加到 PID 为 1234 的进程: ```bash process attach --pid 1234 ``` 此功能适用于无法直接重启程序的场景,但需要确保程序编译时已启用调试信息。 #### 7. 远程调试 对于远程调试场景(如 Android Native 程序),需要先在目标设备上启动 `lldb-server`,然后在本地连接到服务器。具体步骤如下: 1. 将 `lldb-server` 放入设备并启动: ```bash ./lldb-server p --server --listen unix-abstract:///data/local/tmp/debug.sock ``` 2. 在本地使用 LLDB 连接到远程服务器: ```bash platform select remote-android process connect connect://<device_ip>:<port> ``` 其中 `<device_ip>` 是设备的 IP 地址,`<port>` 是监听端口[^5]。 --- ### 示例代码 以下是一个简单调试示例: ```python # 编译带有调试信息的程序 g++ -g -o my_program my_program.cpp # 启动 LLDB lldb my_program # 设置断点 breakpoint set --name main # 运行程序 run # 查看变量值 frame variable my_variable # 单步执行 next # 继续运行 continue ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值