Windows 上的 Rust 回溯?

Dan*_*nte 5 windows backtrace rust

我正在尝试在 Windows 上运行我的项目https://github.com/comit-network/create-comit-app/(主分支)(我通常在 unix 系统上编码)。

它恐慌但我无法获得回溯,尽管设置RUST_BACKTRACE=1或什至RUST_BACKTRACE=full.

我在同一台机器上编译和运行。

这是我得到的:

C:/Users/dante/.cargo/bin/cargo.exe run --color=always --package create-comit-app --bin create-comit-app --no-default-features -- start-env
   Compiling create-comit-app v0.5.0 (C:\Users\dante\src\create-comit-app)
    Finished dev [unoptimized + debuginfo] target(s) in 25.36s
     Running `target\debug\create-comit-app.exe start-env`
Panic received, cleaning up...Panic received, cleaning up...thread panicked while processing panic. aborting.
error: process didn't exit successfully: `target\debug\create-comit-app.exe start-env` (exit code: 0xc000001d, STATUS_ILLEGAL_INSTRUCTION)

Process finished with exit code -1073741795 (0xC000001D)
Run Code Online (Sandbox Code Playgroud)

经过一些研究,似乎应该可以在 Windows 上获得 BACKTRACE?

我在同一台机器上编码和运行:

Rust: 1.39.0
>rustc --version
rustc 1.39.0 (4560ea788 2019-11-04)
>rustup toolchain list
stable-x86_64-pc-windows-msvc (default)
nightly-2019-04-30-x86_64-pc-windows-msvc
1.35.0-x86_64-pc-windows-msvc
1.37.0-x86_64-pc-windows-msvc
1.38.0-x86_64-pc-windows-msvc
1.39.0-x86_64-pc-windows-msvc
Run Code Online (Sandbox Code Playgroud)

此外,我似乎无法使用-msvc工具链进行调试,只能使用-gnu. 现在尝试安装 gnu 链。

任何在 Rust 中有 Windows 经验的人?

小智 17

使用时cmd,是

set RUST_BACKTRACE=1
set RUST_BACKTRACE=full
Run Code Online (Sandbox Code Playgroud)

当使用时powershell,它是

$env:RUST_BACKTRACE=1
$env:RUST_BACKTRACE="full"
Run Code Online (Sandbox Code Playgroud)

例如

$env:RUST_BACKTRACE=1; cargo run
Run Code Online (Sandbox Code Playgroud)

如何在 Windows 上运行 RUST_BACKTRACE=1 的“货物测试”?

关于环境变量- PowerShell | 微软文档

设置-cmd | 微软文档


Jér*_*VEL 7

如果您不想打扰设置环境变量的操作系统特定方法,您可以随时在项目级别配置它并随时更改它。

只需.cargo/config.toml在项目的根目录创建一个文件并在其中写入:

[env]
RUST_BACKTRACE = "1"
Run Code Online (Sandbox Code Playgroud)

当你完成并想要一个不太冗长的编译器时,你可以设置RUST_BACKTRACE="0"


小智 6

这在 Windows 上工作得很好 -

$env:RUST_BACKTRACE=1; cargo run
Run Code Online (Sandbox Code Playgroud)


Dan*_*nte 0

感谢那些试图提供帮助的人。

我的一位同事能够解决恐慌问题。

关于backtrace,通过将工具链更改为解决...-windows-gnu