版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/varding/article/details/48913947
rust在panic以后只会显示一条简单的提示信息:
thread ‘’ panicked at ‘index out of bounds: the len is 0 but the index is 19’, ../src/libcollections\vec.rs:1044
这个太简单了几乎无法定位出错信息,可以通过设置RUST_BACKTRACE=1
来显示更多信息,这个让rust在出错的时候把调用的堆栈信息打印出来
thread '<main>' panicked at 'index out of bounds: the len is 0 but the index is 19', ../src/libcollections\vec.rs:1044
stack backtrace:
0: 0x79cdc7 - sys::backtrace::write::hb171d69d9b1f1b68IBt
1: 0x7a472e - panicking::log_panic::h7ffafb2a071ed29aAmx
2: 0x7627cc - sys_common::unwind::begin_unwind_inner::h88366a0603dbea09ejs
3: 0x762f3b - sys_common::unwind::begin_unwind_fmt::h60d19642b754cf3dkis
4: 0x799f22 - rust_begin_unwind
5: 0x7bef58 - panicking::panic_fmt::h2baac947817f2499wZK
6: 0x7baf0b - panicking::panic_bounds_check::h2bd1766a54714f24CYK
7: 0x430c8d - vec::Vec<T>.IndexMut<usize>::index_mut::h15047657644726247854
at ../src/libcollections/vec.rs:1044
8: 0x43eb67 - ctrls::list_box::ListBox::GetText::he68992a30652b4fbQAg
at K:\software\pc\rust\wtl-rs\src\ctrls/list_box.rs:235
9: 0x409f5f - handler::main_dialog::MainDlgHandler::register_handler::closure.44629
at src\handler/main_dialog.rs:54
...(以下省略)
这样就可以根据call stack来找到出错的地方
cmd下设置最简单:set RUST_BACKTRACE=1
即可
power shell: $env:RUST_BACKTRACE=1