Reveal的LLDB集成方式

本文介绍了一种利用LLDB方式简化Reveal集成的方法,通过配置路径和设置命令,避免了繁琐的手动操作,实现一键加载和启动Reveal。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇文章中,我介绍了用framework的方式去配置Reveal,但是这种方式很繁琐,因为每分析一个工程你都得去添加一次Reveal的framework 并且配置一次Other Linker Flags

而且等你打包测试或者打包上架的时候你还要把Reveal的framework给剔出来。这里给大家分享一种新的方式来玩转Reveal集成->LLDB方式,这种方式就可以避免上面的问题。LLDB集成听上去挺 Heigher-Bigger的,其实是很简单的两步:配置路径、设置命令。


一、配置路径

先启动你的Reveal,要配置路径,首先你得找到Reveal的路径,主要就是Reveal中libReveal.dylib包的路径。先找到你下载安装的Reveal,右键->显示包内容


在打开的路径中展开Contents文件,找到libReveal.dylib目标文件,然后右键->显示简介就可以得到目标文件的路径


这里我得到的路径是 /Users/apple/Downloads/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib,保存该路径备用。然后创建一个新的Xcode工程 LLDBSetReveal.xcodeproj,随便添加点什么内容在程序中(显示效果)。启动Xcode工程,等Xcode正常启动后再暂停工程进入LLDB模式


输入第一行命令 : expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void*)dlopen("/Users/apple/Downloads/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void *)0),等有响应的时候再输入第二条命令 expr (void)[(NSNotificationCenter*)[[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil]; 


输入命令完毕后出现 INFO: Reveal Server started (Protocol Version 25). 就是配置成功了



二、设置命令
如果每次都要输入这两条命令的话更繁琐了,要解决这个问题我们就得在.lldbinit里面设置别名了。打开终端键入 touch ~/.lldbinit命令回车,然后键入open ~/.lldbinit命令回车,在新建的文本编辑器中输入之前的两步命令:红色的是命令格式,蓝色标注的是命令别名,其余的就是上面步骤中的两条命令

command aliaslwq_reveal_load expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Users/apple/Downloads/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)


command alias lwq_reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];


测试一下,重启Xcode工程,然后暂停进入LLDB模式,分别输入命令 lwq_reveal_load  lwq_reveal_sTart 






"/Users/apple/Downloads/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib"

"/Users/apple/Downloads/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib"

r

 

### 配置和使用 Visual Studio Code 中的 `launch` 文件 #### 调试配置基础 在 Visual Studio Code (VSCode) 中,`launch.json` 是用于指定调试环境的关键文件。通过此文件可以设置程序入口、参数以及工作目录等重要属性。 对于 LLDB 的具体配置如下: - 打开 VSCode 并进入调试面板。 - 选择“自定义配置”,点击“创建 launch.json”来初始化一个新的调试配置文件[^1]。 #### 编辑 `launch.json` 一旦创建了 `launch.json` 文件,则可以根据需求编辑其内容以适应不同的开发场景。下面是一个针对 C/C++ 使用 LLDB 进行本地调试的基础模板: ```json { "version": "0.2.0", "configurations": [ { "name": "(lldb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/your_executable_path", // 可执行文件路径 "args": [], // 命令行参数列表 "stopAtEntry": false, // 是否停在第一条指令处 "cwd": "${workspaceFolder}", // 工作目录 "environment": [], "externalConsole": false, "MIMode": "lldb" } ] } ``` 为了使 VSCode 正确解析相对路径,在上述 JSON 对象内添加 `"${fileDirname}"` 或者其他合适的变量到 `cwd` 字段中[^2]。 #### 处理构建任务 当项目涉及编译过程时,可以通过关联的任务链实现自动化构建与调试流程。例如,在 Ubuntu 上利用 Make 构建工具配合 CMake 来完成整个项目的编译打包操作,并将其集成至 VSCode 的调试环境中[^3]。 ```json // task.json 示例片段 { "version": "2.0.0", "tasks": [ { "label": "build_project", "command": "cmake --build ./build --target all", "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task for building the project." } ], "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared" } } ``` 随后可在 `launch.json` 中引用这些预设好的任务标签名作为前置条件,确保每次启动调试之前都会先运行相应的构建命令。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值