#demangle #name #wrapper #real #demangler #demangling #llvm-symbolizer

app llvm-symbolizer-rust-wrapper

修复Rust解引用符号对llvm-symbolizer的支持

1 个不稳定版本

0.1.0 2023年12月9日

#489调试

GPL-3.0 许可证

22KB
164

llvm-symbolizer-rust-wrapper

此二进制程序将伪装成 llvm-symbolizer,但它将使用 rustc_demangle 包而不是内置的llvm解引用符号器来解引用Rust函数名称。它需要一个已安装的真实 llvm-symbolizer 二进制文件。

安装

首先,确保您已安装真实版本的 llvm-symbolizer。打开终端,键入 llvm-symbolizer,并按两次Tab键。自动完成应显示安装的 llvm-symbolizer 二进制文件的列表。如果您看到类似以下内容,那就太好了!

llvm-symbolizer-11  llvm-symbolizer-12  llvm-symbolizer-13  

如果没有,请使用您的包管理器安装最新版本的 llvm。

确保 llvm-symbolizer 命令不存在,如果存在,则需要删除它或将它重命名为 llvm-symbolizer-14 或其他版本。

安装某个版本的 llvm-symbolizer-* 并正确安装并在 PATH 中后,使用 cargo install 来安装此包装器

cargo install llvm-symbolizer-rust-wrapper

这会将二进制文件安装到 $HOME/.cargo/bin。尝试执行 llvm-symbolizer-rust-wrapper --help。如果那样工作,那就太好了。如果不行,您可能需要将 $HOME/.cargo/bin/ 添加到 PATH 环境变量中。

一旦您确保包装器可以正常工作,您需要将其设置为默认的 llvm-symbolizer。这可以通过创建符号链接轻松完成

ln -s $HOME/.cargo/bin/llvm-symbolizer-rust-wrapper $HOME/.cargo/bin/llvm-symbolizer

验证其工作情况

llvm-symbolizer --help

这将打印 llvm-symbolizer-xx 的帮助信息,其中 xx 是最新安装的 llvm-symbolizer 版本。

您还可以通过设置环境变量来手动指定要使用的 llvm-symbolizer 版本。

export LSRW_REAL_EXE=/usr/bin/llvm-symbolizer-14

故障排除

由于这是一个包装器,我们无法将日志输出到 stderr,因此我们将其记录到文件中。默认情况下日志是禁用的,可以通过设置环境变量 LSRW_LOG_FILE=/tmp/lsrw_log.txt 来启用。

依赖项

~5–15MB
~203K SLoC