LLDB:我必须从源代码(XCode项目)构建它才能从命令行使用它



XCode附带LLDB,大概有一种方法可以将其作为调试XCode项目时使用的调试器。

当然,作为一名Linux用户,我已经成为了一名铁杆命令行狂热分子,我有一个完善的Vim和Tmux工作流程。作为一个代码可移植性怪胎,我的脚本100%都可以在OSX和Linux上运行。

那么,有没有某种方法可以从XCode内部深处"拉出"LLDB,并从命令行运行它?按照说明书的指示,自己编写有什么好处?

我猜从源代码构建的常见原因也适用于此:我们可以通过重建它来获得最新的出血边缘功能和错误修复。这只是更好。等等。我如何检查特定LLDB实例使用的clang的哪个版本?我确实使用XCode项目(按照这些指示)编译了它,version报告:

steven@new-host-3:~/Library/Developer/Xcode/DerivedData/lldb-bvjmzslapfdmdmabqocfcogrlbfc/Build/Products/Debug Wed 3 20:37 10137
% ./lldb
(lldb) version
lldb-300.99.0

答案不会直接帮助我,因为我已经知道如何从源代码构建整个东西,但对于其他使用Mac的人来说,如果他们正在考虑放弃GDB(实际上打算通过命令行进行调试),也许有一个快捷方式(我跳过了)!

我想这个出血边缘svn来源的手动编译LLDB和苹果用XCode和XCode CLT封装的LLDB之间仍然有很大的区别。

Xcode 4.6的Mac OS X上的约定是安装CommandLineTools包(在/usr/bin等中安装),或者在命令前加上xcrunxcrun lldbxcrun clang等。Xcode的大多数用户不使用命令行工具,因此这种安排效果良好。我相信,如果您只是从http://developer.apple.com/(我认为需要Apple ID才能访问——我认为一个免费帐户就足以获得CommandLineTools包)这意味着你只需下载128MB就可以获得完整的命令行工具。

/Applications/Xcode.app中为所有内容提供规范主页的更改是一个相对较新的更改,推动此更改的目标是使开发人员工具可重新定位。如果你从Mac应用商店下载,它会安装在/Applications/Xcode.app中,但它不需要在那里。你可以在一个系统上安装多个版本的工具-例如,有权访问Xcode 5 Developer Previews的人会看到它安装在一个单独的位置,因此Xcode 4.6工具仍然存在于系统中。xcode-select命令行程序可用于指定xcrun clang等应调用哪组Xcode.app工具。

顺便说一句,对于人们来说,一个更舒适的从终端构建的有用快捷方式是:如果你正在构建lldb,你可以执行xcodebuild -configuration Debug,它将为你构建Debug配置,不需要Xcode UI。

也许我在这里走的是风景优美的路线。

% /Applications/Xcode.app/Contents/Developer/usr/bin/lldb
(lldb) version
LLDB-179.6
(lldb)

这可能足够有用,可以完成工作。

不幸的是,Xcode CLT和Xcode本身都有类似的工具,这是对磁盘空间的浪费。

请参阅此处的姐妹问题。

最新更新