当 运行 在 Debian 中安装 Rust 二进制文件时如何传递 RUST_BACKTRACE=1?

How to pass RUST_BACKTRACE=1 when running a Rust binary installed in Debian?

当我 运行 使用 cargo 的二进制文件时,我可以选择 运行 它如下 -

bash -c "RUST_BACKTRACE=1 cargo run --bin my_binary"

当二进制文件遇到错误时,这会给我一个堆栈跟踪。 但是当我为同一个二进制文件创建一个 Debian 包时,我如何在失败时获得堆栈跟踪?

如果源代码是在 Rust 中实现的,是否也有一些方法可以在那里启用回溯?

编辑:

我使用

为我的 cargo 项目创建了一个 debian 包
cargo deb // Produces a my_binary.deb

这个 my_binary.deb 然后可以安装在 Debian 机器上 -

 dpkg -i /tmp/my_binary*.deb || true \
 && apt-get -f -y install

安装 alacritty (0.5.0-dev) 后,我在 Linux Mint 19 上遇到了同样的问题(错误消息)。

在终端中 运行:

RUST_BACKTRACE=1RUST_BACKTRACE=1 alacritty 

RUST_BACKTRACE=full 用于详细的回溯。

RUST_BACKTRACE=1RUST_BACKTRACE=full alacritty 

以防万一有人从源代码中寻找设置环境变量的方法,请按以下步骤操作:

use std::env;
fn main() {
  // this method needs to be inside main() method
  env::set_var("RUST_BACKTRACE", "1");
}

与从 PowerShell 手动设置 env 变量相比,这种方法的好处是您在 运行 这个程序后不需要关闭这个变量。也就是说,'RUST_BACKTRACE=1'只对本节目设置,对其他节目不设置