以下命令
$ cargo build
生成带有调试信息的非优化构建。相反,
$ cargo build --release
在没有调试信息的情况下生成优化的构建。
有没有办法使用调试信息生成优化的构建?我需要这个来获得有意义的分析信息。
从 Rust 1.57 开始,Cargo 现在允许 custom profiles。这允许您定义自己的配置文件来添加调试信息:
[profile.release-with-debug]
inherits = "release"
debug = true
然后,您可以在构建时使用该配置文件:
% cargo build --profile=release-with-debug
Compiling buggin v0.1.0 (/tmp/buggin)
Finished release-with-debug [optimized + debuginfo] target(s) in 0.48s
在此版本之前,或者如果您总是想要调试信息,您可以修改 release
profile 以包含调试符号:
[profile.release]
debug = true
请注意,release
配置文件和 bench
配置文件不同。
也可以看看
可以使用 Cargo 在发布模式下构建测试吗?
如何在启用溢出检查的情况下编译和运行优化的 Rust 程序
Cargo 是否支持自定义配置文件?
或者基本上是“锈迹分析”的任何热门搜索结果:
在 OSX 上使用 Instruments 和 FlameGraph 进行 Rust 分析:CPU/时间
在 Linux 上分析 Rust 应用程序
使用 callgrind 分析 rust 代码
CARGO_PROFILE_RELEASE_DEBUG
环境变量。您可以将其设置为“真”。