#bindings #llvm #macos #api #public-api #api-bindings

lldb

Rust样式的LLDB公共API绑定。LLDB是LLVM项目的调试器,是macOS的系统调试器。

11个版本

0.0.11 2022年9月20日
0.0.10 2021年10月4日
0.0.8 2018年9月19日
0.0.7 2017年9月14日
0.0.2 2016年6月30日

#141 in 调试

MIT/Apache

285KB
6K SLoC

lldb

此crate提供了对由LLVM项目提供的LLDB调试器的公共API的安全绑定。LLDB提供了现代、高性能的调试框架,并且是macOS和iOS的默认调试器。

此crate基于更低级别的crate lldb-sys

双许可协议,MIT和Apache 2.0许可。

文档

API完全文档化,包含示例: https://endoli.github.io/lldb.rs/

安装

此crate与Cargo兼容,位于crates.io。将其添加到您的Cargo.toml中,如下所示

[dependencies]
lldb = "0.0.11"

Linux

安装您平台的lldb和liblldb-dev软件包,以便您安装LLDB本身以及所需的头文件和其他支持文件。例如,在Ubuntu上,您可以运行以下命令:

macOS

您需要设置两个环境变量以进行构建

LLVM_ROOT - This points to the root of the LLVM source tree.
LLVM_BUILD_ROOT - This points to the root of an LLVM build directory. This may be the same as the LLVM source tree, especially if you're working from a binary install.

目前,您必须手动在可执行文件上设置@rpath,以便它们在运行时可以找到LLDB.framework。可以使用install_name_tool完成此操作

install_name_tool -add_rpath /Applications/Xcode.app/Contents/SharedFrameworks target/debug/examples/barebones

或者,对于测试和本地工作,您可以设置DYLD_FRAMEWORK_PATH

export DYLD_FRAMEWORK_PATH=/Applications/Xcode.app/Contents/SharedFrameworks

开发指南

官方LLDB对C++和Python的绑定维护了非常严格的向后兼容性。这导致它们有一些方法被认为是过时的,因为它们被具有更全面参数的新方法所取代。Rust绑定目前还没有这个问题,因此我们应该尝试只编写推荐用法的绑定,而不是过时的方法。

官方绑定的文档也有些不完整。虽然我们很乐意向上游贡献以改进这一点,但我们应努力使这些绑定得到良好的文档说明和更多示例。

人们应该羡慕我们绑定的质量。Sic itur ad astra。

实现状态

项目正在积极开发中。由于一些基本功能正在编写中,该项目目前还不能完全使用。

支持和维护

到目前为止,我主要独立开发这个库。我可以提供支持和维护,但非常欢迎通过Patreon进行捐赠。我还可以提供商业支持,请随时联系我

贡献

除非你明确表示,否则根据Apache-2.0许可中定义的,你提交给作品的所有有意贡献都将按上述方式双授权,没有任何附加条款或条件。

依赖关系

~0.7–2.5MB
~55K SLoC