LLDB 命令详解

LLDB远程调试Android实战指南:从环境搭建到高效调试 本文提供了一份详尽的LLDB远程调试Android实战指南,涵盖从环境搭建到高效调试的全流程。文章详细讲解了如何在Android设备端部署lldb-server,在主机端配置LLDB客户端,并通过实战命令演示了断点设置、线程堆栈分析、流程控制与数据查看等核心调试技巧,帮助开发者深入底层,精准解决复杂问题。 阅读详情

LLDB 命令详解

1.常用的LLDB指令

[,subcommand> […]] [-options [option-value]] [argument[argument…]]

  • < command > : 命令
  • < subcommand > : 子命令
  • < action > : 命令操作
  • < options > : 命令参数

比如给 test 函数设置断点

breakpoint set -n test
  • breakpoint 是 < command >

  • set 是 < action >

  • -n 是 < options >

  • test 是 < arguments >

  • help

    • 查看指令的用法
    • 比如: help breakpoint, help breakpoint set
  • expression < cmd-option > – < expr >

    • 执行一个表达式

      • < cmd - options> : 命令选项
        • : 命令选项结束符, 表示所有的命令选项已经设置完毕,如果没有命令选项, 可以省略
      • < expr > 需要执行的表达式
      expression self.view.backgroundColor = [UIColor redColor]
      
    • expression, expression - 和指令 print, p, call 的效果一样

    • expression -O – 和 指令 po 的效果一样

      注意
      通过LLDB设置view 的颜色会有报错请参考 此链接: expression View

  • thread backtrace

    • 打印线程的堆栈信息
    • 和指令bt的效果一样
  • thread return

    • 让函数直接返回某个值, 不会执行断点后面的代码
  • frame variable

    • 打印当前栈帧的位置
  • thread continue, continue c

    • 程序继续运行
  • thread step-over, next , n

    • 单步运行, 把子函数当做整体的一步执行
  • thread step-in, step, s

    • 单步执行, 遇到子函数会进入子函数
  • thread step-out, finish

    • 直接执行完当前函数的所有代码, 返回到上一个函数
  • si,ni 和 s, n 类似

    • s, n 是源码级别的
      • thread step-over next n
      • thread step-in step s
    • si, ni 是汇编指令级别
      • thread step-inst-over nexti ni
      • thread step-inst-stepi si
  • breakpoint

    • breakpoint set -a 函数地址
    • breakpoint set -n 函数名称
      • breakpoint set -n test
      • breakpoint set -n touchesBegan:withEvent:
      • breakpoint set -n “-[ViewController touchesBegan:withEvent:]”
    • breakpoint set -r 正则表达式
    • breakpoint set -s 动态库, -n 函数名
  • breakpoint list

    • 列出所有的断点 (每个断点都有自己的编号)
  • breakpoint disable 断点编号

    • 禁用断点
  • breakpoint enable 断点编号

    • 启用断点
  • breakpoint delete 断点编号

    • 删除断点
  • breakpoint command add 断点编号

    • 给断点预先设置需要执行的命令, 到触发断点时,就会按顺序执行
breakpoint command add 2
  • breakpoint command list 断点编号

    • 查看某个断点设置的命令
  • breakpoint command delete 断点编号

    • 删除某个断点设置的命令
  • 内存断点

    • 在内存数据发生改变的时候触发

    • watchpoint set variable 变量

      • watchpoint set variable self->age
    • watchpoint set expression 地址

      • watchpoint set expression &(self->age)
    • watchpoint list

    • watchpoint disable 断点编号

    • watchpoint enable 断点编号

    • watchpoint delete 断点编号

    • watchpoint command add 断点编号

    • watchpoint command list 断点编号

    • watchpoint command delete 断点编号

  • image lookup

    • image lookup -t 类型: 查找某个类型的信息
    • image lookup -a 地址: 根据内存地址查找在模块中的位置
    • image lookup -n 符号或者函数名: 查找某个符号或者函数的位置
  • image list

    • 列出所加载的模块信息
    • image list -o -f
      • 打印出模块的偏移地址 全路径

相关推荐

集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“

项目场景: 设想是将Calibre集成到cadence virtuoso中,但网上的解决办法尝试过在本机上实验都有点问题,因此想记录下来我的解决办法仅供参考。 问题描述: 安装好cadence, calibre之后打开virtuoso,CIW窗口显示 *Error* load: can't access file - "/opt/eda/Mentor/lib/calibre.skl" 问题是出在calibre.skl的加载路径出错,尝试网上的在工程目录下修改.cdsinit文件,添加calibre安装

weixin_52714276的博客 1万+

lldb常用调试命令

lldb常用命令

SmileHergo的博客 1559

GX Works2系统启动失败排查指南:从环境配置到修复方案

在工业自动化与PLC编程调试中,软件启动异常是常见的工程痛点。当开发工具因系统环境配置不当而频繁报错时,往往不是简单的重启能解决的。运行库缺失、区域设置错误、临时目录失效或系统服务被禁用,都可能导致编程软件无法完成初始化流程。掌握从基础环境检查到系统组件修复的系统性排查思路,是提升工控开发效率的关键能力。本文从软件初始化原理出发,结合Windows系统维护实践,梳理一套适用于工业软件启动故障的通用诊断方法,并自然聚焦到三菱GX Works2常见启动失败问题的实际处理,帮助工程师快速定位并解决环境性故障,保障

weixin_42567046的博客 458

LLDB(六):常用命令举例

目录创建符号断点关于 Xcode 底部的调试区域在使用 expression 命令执行方法时,需要将发送的消息强制转换为该方法的返回值类型关于 p 和 po 的输出格式通过 expression 命令读取、设置、操作寄存器的值expression 命令只能在当前线程中执行表达式,expression 命令不能跨线程执行表达式获取 UIButton 的 target 和 action关于渲染服务(backboardd)获取指定镜像当前的 ASLR 偏移量使用 watchpoint 命令监视对指定对象的指定成员

Airths 的博客 2612

群晖Hyper Backup还原实战:加密与非加密备份的完整操作指南

本文详细介绍了群晖Hyper Backup在加密与非加密备份场景下的完整还原操作指南。通过实战案例和高级技巧,帮助用户应对硬盘故障或系统崩溃时的数据恢复挑战,特别是加密备份恢复中的关键节点和常见陷阱。

weixin_29323365的博客 440

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7604

熟练使用 LLDB,让你调试事半功倍

LLDB是Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用Xcode运行程序,实际走的都是LLDB。熟练使用LLDB,可以让你debug事半功倍。 LLDB基础知识 LLDB控制台 Xcode中内嵌了LLDB控制台,在Xcode中代码的下方,我们可以看到LLDB控制台。 LLDB控制台平时会输出一些log信息。如果我们想输入命令

Ji晶晶的博客 5890

S32K144后门密钥实战:如何用JLINK脚本绕过复位陷阱更新加密固件

本文详细介绍了在S32K144微控制器上,如何利用JLINK脚本绕过调试器默认复位陷阱,实现通过后门密钥安全更新加密固件的实战方案。针对汽车电子现场维护中常见的“解锁-复位-锁定”循环问题,文章提供了完整的JLinkScript定制方法、批处理工具及故障排除指南,帮助工程师高效完成固件升级。

weixin_29175469的博客 142

14、lldb调试指令

LLDB(Low Lever Debug): 默认内置于Xcode中的动态调试工具.标准的lldb提供了一组广泛的命令,旨在与老版本的GDB命令兼容.除了使用标准配置外,还可以很容易地自定义lldb以满足实际需要

Holothurian 2495

MATLAB2021b详细安装教程

1.下载 2.安装 下载安装包后打开iso文件,若是无法打开请用解压软件打开。 ①打开MATLAB_R2021b_win64,双击软件开始安装 ② 一直点击下一步,直到步骤③ ③选择我已有我的许可证的文件密钥,并输入62551-02011-26857-57509-64399-54230-13279-37181-62117-65158-40352-64197-45508-24369-45954-39446-39538-16936-10698-58393-44718-32560-10501-40

惜洛-Jankin的博客 9万+

PCL 改进快速欧式聚类【2025最新版】

在FEC: Fast Euclidean Clustering for Point Cloud Segmentation一文的基础上对算法进行改进。博客长期更新,本文最近更新时间为:2025年9月16日。

点云侠的博客 2569

[iOS]LLDB调试

LLDB是一个有着REPL(read-eval-print-loop 交互式)的特性和C++、Phtyon插件的开源调试器,是Xcode工程中默认的调试器。

Gamin 2270

2万字大厂面经:小米嵌入式面试题及参考答案(持续更新)

BIOS (Basic Input/Output System) 是一种存储在ROM中的固件程序,它为计算机提供了最基础的硬件初始化和服务。BIOS主要存在于传统的x86架构计算机中。嵌入式系统的启动流程取决于具体的硬件平台和所采用的操作系统。复位阶段:当系统通电或复位时,CPU进入复位状态。硬件初始化:CPU和必要的硬件设备(如内存控制器)被初始化。加载引导加载程序:引导加载程序(如U-Boot)被加载到内存中。执行引导加载程序:引导加载程序开始执行,初始化更多的硬件设备,并检测存储介质。

大模型大数据攻城狮的专栏 2529

lldb命令详解

前言 新博客 Xcode_Debug lldb命令的格式如下 : <noun> <verb> [-options [option-value]] [argument [argument..]] 断点管理 简单地通过文件和行号进行断点 : breakpoint set --file foo.c --line 12 ...

weixin_34227447的博客 309

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LLDB(二):基础命令详解

目录本文所使用的 LLDB 版本_regexp-attach_regexp-break_regexp-bt_regexp-display_regexp-down_regexp-env_regexp-jump_regexp-list_regexp-tbreak_regexp-undisplay_regexp-upaproposbreakpointbreakpoint clearbreakpoint commandbreakpoint command addbreakpoint command deletebr

Airths 的博客 3615

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LLDB命令详解(自用备忘)

一、命令行构造 1. 基础用法 <noun> <verb> [-options [option-value]] [argument [argument...]] 2. 在某一行打下断点: (lldb) breakpoint set --file foo.c --line 12 (lldb) breakpoint set -f foo.c

liangxiansong的博客 576

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LLDB调试工具安全实践:keychain和iap命令的数据保护机制详解

在iOS应用开发和逆向工程领域,LLDB调试工具是开发者不可或缺的利器。本文将深入探讨LLDB调试工具集合中的**keychain**和**iap**命令,这两个命令在数据安全保护方面发挥着重要作用。通过了解这些命令的工作原理和安全机制,开发者可以更好地保护敏感数据,同时进行有效的调试工作。 ## 🔐 什么是LLDB调试工具? LLDB是苹果官方提供的调试器,广泛应用于iOS和macOS开发

gitblog_00049的博客 756

pwndbg dumpargs 命令详解:在 GDB/LLDB 中一键解析 call/syscall 指令的函数参数

`dumpargs`(别名 `args`)是 pwndbg 提供的一个命令,用于在程序停在调用指令(`call`)或系统调用指令(`syscall`)上时,自动解析并打印该调用将传入的参数。本文基于 [docs/commands/misc/dumpargs.md](https://link.gitcode.com/i/50a7eb9c52b53d055c6aa83f3eed40cd) 展开,结合

gitblog_00915的博客 7

pwndbg argv 命令详解:在 GDB 与 LLDB 中查看程序启动参数与环境变量

`argv` 是 pwndbg 提供的 Linux/ELF 调试命令之一,用于在断点处直接打印被调试程序启动时传入的 `argv`(参数向量)内容,支持按索引单独查看或一次性列出全部参数。本文以 [docs/commands/linux_libc_elf/argv.md](https://link.gitcode.com/i/35d42264f10b92447e116bd356a95cfe) 为基

gitblog_00474的博客 10

LLDB

文/小笨狼(简书作者) 原文链接:http://www.jianshu.com/p/e89af3e9a8d7 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用Xcode运行程序,实际走的都是LLDB。熟练使用LLDB,可以让你debug事半功倍 LLDB基础知识

SuYuMingXiangGuan的博客 1032

5层自动合成:T2 SDE如何构建最小化Linux内核并支持近40种CPU架构

T2 SDE 是一款开源的系统开发环境(meta distribution),它的核心能力之一,是让 Linux 内核的构建完全"自动化":不需要手动维护上万行的 `.config`,系统会按 **5 层合并机制**自动合成一份最小化、可启动的内核配置,并且同一套流程覆盖 `architecture/` 目录下近 40 种 CPU 架构——从 x86、arm64、riscv64 到 mips、po

gitblog_00103的博客 85

LLDB使用详解

https://blog.youkuaiyun.com/u012907783/article/details/53885818 LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用Xcode运行程序,实际走的都是LLDB。熟练使用LLDB,可以让你debug事半功倍 LLDB基础知识 LLDB控制台 Xcode中内嵌了LLDB控制台,在Xcod...

chenyijun的专栏 3063

Yuzu 模拟器版本管理:升级、观望、回滚的 3 个决策完整实用指南

Yuzu 是一款 Nintendo Switch 模拟器,它的构建仓库几乎每天都会放出新的 Mainline Build。对 Yuzu 模拟器来说,版本管理与版本选择往往比追新版更重要:选对了游戏跑得顺,选错了存档卡在加载界面。 全文按“升级、观望、回滚”的顺序展开:先读名字,再判断定位,然后决定用哪一份,最后才谈迁移、排查和维护节奏。 ## 📦 下载之后,先读懂文件名里的 3 个信息 解

gitblog_00688的博客 71

深入了解GDB和LLDB

什么是GDB和LLDB我们在开发iOS程序的时候常常会用到调试跟踪,如何正确的使用调试器来debug十分重要。xcode里有内置的Debugger,老版使用的是GDB,xcode自4.3之后默认使用的就是LLDB了。GDB:UNIX及UNIX-like下的调试工具。LLDB:LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debugger,其可以安...

努力,可能成功!放弃,注定失败! 8752

Jasna 视频马赛克修复指南:本地 GPU 全流程,单条 4K 视频 63 秒跑完

Jasna 是一款免费、完全本地的视频马赛克修复工具:检测、修复、编码全部在你的 GPU 上完成,文件不出机器。官方基准中,一段 3 分 22 秒的 4K 视频在单张 RTX 5090 上 63 秒跑完,同条件比 Lada 0.11.0 快 4.7 倍。这篇文章按顺序讲清四件事:机器要满足什么条件、第一次运行怎么跑通、四种最常见的用法、真实速度有多快。 ## 差异价值:Jasna 和同类工具差在

gitblog_00691的博客 924

LLDB断点调试注意事项

####怕忘, 记录一下 1.在lldb之前会会用debugserver 进行附加 , 我通常使用debugserver *:1234 -a 进程号 但是有可能会失败, 对方用了ptrace防护,此时改为debugserver -x backboard *:1234 /var/mobile/Containers/Bundle/Application/xxxx/mach-o , 然后b ptrac...

weixin_34250434的博客 329
上一篇: 常用网站推荐 ~ 持续跟新中....
下一篇: iOS 常用汇编指令集
光速之年
博客等级 码龄12年 31粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值