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

时间:2013-07-04 00:09:32

标签: macos clang llvm lldb

XCode附带LLDB,可能有一种方法可以将它作为调试器在调试XCode项目时使用。

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

那么有什么方法可以从XCode的内部深处“拉出”LLDB并从命令行运行它?根据{{​​3}}?

的指示,我们自己编译有什么好处

我猜测从源代码构建的常用理由也适用于此:我们可以通过重建来获得最新的前沿功能和错误修正。这只是更好。我如何检查特定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

答案不会直接帮助我,因为我已经知道如何从源代码构建整个东西,但是对于其他所有人而言,正在考虑放弃GDB(并且实际上打算从命令中调试) ()),也许有一条捷径(我跳过了)!

我猜这个流行的svn-sourced手动编译的LLDB与Apple与XCode和XCode CLT打包的LLDB之间仍然存在显着差异。

2 个答案:

答案 0 :(得分:2)

Mac OS X上使用Xcode 4.6的惯例是安装CommandLineTools软件包(安装/usr/bin等内容)或者使用xcrun添加前缀命令。 xcrun lldbxcrun clang等.Xcode的大多数用户都不使用命令行工具,因此这种安排很有效。我相信如果你只是从http://developer.apple.com/进行命令行开发,你可以单独下载CommandLineTools包(我认为需要一个Apple ID来访问 - 我认为一个免费帐户将会足以获得CommandLineTools软件包)这意味着您可以通过单个128MB下载获得完整的命令行工具。

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

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

答案 1 :(得分:0)

也许我在这里风景优美。

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

这可能足以完成工作。

很遗憾看到Xcode CLT和Xcode本身带有类似的工具,这是浪费磁盘空间。

请参阅sister question here