lldb tips

调试前先关闭代码优化,否则调试过程中部分变量内容会看不到。

    ./configure CFLAGS="-g -O0" CXXFLAGS="-g -O0" LDFLAGS="-g"

    make

运行带参数的调试命令如下,主要是两个减号

    lldb -- cmd -args

设置文件行号断点,一般先定位到函数,看到行号后再设置准确的行断点。[xx]里面的是命令全称。

    l[ist]

    br[eak] s -n[ame] FuncName

    n;n;n 

    br s -f FileName.c -l LineNum

    br l

    br del 1

    r[un]

执行至下一个断点

    c[ontinue]

查看局部变量

    fr[ame] v VarName


参考链接

http://lldb.llvm.org/lldb-gdb.html

<think>我们正在回答用户关于LLDB调试器的使用指南或错误解决的问题。根据引用和用户需求,我们将提供LLDB调试器的基本使用方法和错误解决的一般步骤。用户提供的引用中提到了LLDB调试器的使用,包括设置断点、调试命令、Swift和Objective-C的调试等。我们将整合这些信息,并参考一般LLDB使用指南来回答。注意:由于引用内容有限,我们将结合通用知识来构建回答,确保准确性和实用性。回答结构:1.介绍LLDB调试器及其用途。2.基本命令和使用方法(包括启动、设置断点、查看变量等)。3.常见错误解决方法(如定位到具体错误行,使用条件断点等)。4.高级技巧和资源推荐。5.相关问题。注意:用户引用中提到了一个错误发生在RootViewController.m的第53行,我们将以此为例说明如何设置断点和条件断点。</think> 以下是关于LLDB调试器的使用指南和错误解决方法的综合指南,基于提供的参考资料和通用调试实践: ### LLDB调试器核心使用指南 1. **启动调试器** (适用于C/C++/Swift/Objective-C) ```bash $ lldb ./your_executable # 启动可执行文件[^3] (lldb) process launch # 开始执行程序 ``` 2. **断点管理** ```bash (lldb) breakpoint set -f RootViewController.m -l 53 # 在指定文件行设置断点[^1] (lldb) breakpoint set -n "-[UIViewController viewDidLoad]" # 函数断点 (lldb) breakpoint modify -c "variable == 5" 1 # 设置条件断点(ID为1) ``` 3. **运行时控制** ```bash (lldb) continue # 继续执行 (lldb) next/n # 单步跳过 (lldb) step/s # 单步进入 (lldb) finish # 执行到当前函数返回 ``` 4. **变量检查与修改** (Swift/ObjC通用) ```bash (lldb) frame variable # 查看当前帧所有变量 (lldb) expression -- someVariable = 42 # 运行时修改变量 (lldb) po someObject # 打印对象描述(ObjC/Swift) ``` ### 常见错误解决方案 1. **定位崩溃问题** ```bash (lldb) bt all # 打印所有线程堆栈 (lldb) thread info # 查看当前线程状态 (lldb) image lookup -a $pc # 定位当前指令位置[^2] ``` 2. **条件断点调试** (如特定数据引发的错误) ```bash (lldb) breakpoint set -f ProblemFile.swift -l 25 (lldb) breakpoint modify -c "element.id == 1024" ``` 3. **内存问题诊断** ```bash (lldb) memory read -f x -c 32 0xaddress # 检查内存内容 (lldb) watchpoint set expression &criticalVariable # 设置变量监视点 ``` ### 高级调试技巧 - **表达式注入**:`expression import UIKit` 运行时注入模块[^2] - **可视化调试**:使用Chisel插件增强可视化能力 - **崩溃后检查**:`process save
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值