当 运行 在 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'只对本节目设置,对其他节目不设置
当我 运行 使用 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'只对本节目设置,对其他节目不设置