LLVM debug output through rust
我正在寻找一种通过调用rust编译器(通过货物)读取LLVM调试输出的方法。我对LLVM ASAN的输出特别感兴趣。
要使用ASAN运行构建,可以执行以下操作:
1 | cargo clean && RUSTFLAGS="-Zsanitizer=address" cargo build |
但是我不知道获取调试日志输出的命令。
使用c声,我认为可以添加
1 | -mllvm -debug-only=asan |
作为编译器标志。
如何通过rustc提供类似该标志的内容?
我正在使用当前的rust源(https://github.com/rust-lang/rust/ commit 31f5d69)自己构建rustc。
rustc的等效编译器参数为
1 | -C llvm-args=-debug-only=<LLVM DEBUG_TYPE> |
因此使用ASAN构建rust应用程序并仅查看ASAN日志输出的完整命令为:
1 | cargo clean && RUSTFLAGS="-C llvm-args=-debug-only=asan -Zsanitizer=address" cargo build |
侧面说明:我认为在构建rust以查看相应的日志输出时,必须在config.toml中启用LLVM的调试模式。