jakobhellermann / bevy-inspector-egui

Inspector plugin for the bevy game engine
Apache License 2.0
1.18k stars 173 forks source link

panicked at 'alloc::borrow::Cow<str> not registered' #139

Closed rajsahae closed 11 months ago

rajsahae commented 1 year ago

I'm following this bevy minesweeper tutorial albeit not exactly as it was written for an older version.

At some point around chapter 2 or 3 I had to disable the WorldInspectorPlugin, as I was getting the following runtime panic.

    Finished dev [unoptimized + debuginfo] target(s) in 0.12s
     Running `target/debug/minesweeper-tutorial`
thread 'main' panicked at 'alloc::borrow::Cow<str> not registered', /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy-inspector-egui-0.18.3/src/inspector_egui_impls/mod.rs:121:28
stack backtrace:
   0:     0x55900b0f15d1 - std::backtrace_rs::backtrace::libunwind::trace::h8bc3e596fd6e6181
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x55900b0f15d1 - std::backtrace_rs::backtrace::trace_unsynchronized::h9a0656fedca2f962
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x55900b0f15d1 - std::sys_common::backtrace::_print_fmt::h11ca79bc953fda0e
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x55900b0f15d1 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h23585af82c540d61
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x55900b11d2ef - core::fmt::rt::Argument::fmt::h1e7f4bcecbee3fbb
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/fmt/rt.rs:138:9
   5:     0x55900b11d2ef - core::fmt::write::h41633f265152b738
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/fmt/mod.rs:1094:21
   6:     0x55900b0ed127 - std::io::Write::write_fmt::hdf9fdeebf4391d4c
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/io/mod.rs:1714:15
   7:     0x55900b0f13e5 - std::sys_common::backtrace::_print::h0761f433dadea582
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x55900b0f13e5 - std::sys_common::backtrace::print::hffcd468cc9baf957
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x55900b0f2ba3 - std::panicking::default_hook::{{closure}}::h70eb212f41458c90
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:269:22
  10:     0x55900b0f2934 - std::panicking::default_hook::hf217f8886a1385fc
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:288:9
  11:     0x55900b0f3129 - std::panicking::rust_panic_with_hook::h7901b0073bb3ed74
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:705:13
  12:     0x55900b0f3027 - std::panicking::begin_panic_handler::{{closure}}::hec74e56b1f659f1d
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:597:13
  13:     0x55900b0f1a06 - std::sys_common::backtrace::__rust_end_short_backtrace::hb5aad058838135df
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/sys_common/backtrace.rs:151:18
  14:     0x55900b0f2d72 - rust_begin_unwind
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:593:5
  15:     0x5590082482b3 - core::panicking::panic_fmt::h837c4ca50a3367f6
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/panicking.rs:67:14
  16:     0x55900830ee4c - bevy_inspector_egui::inspector_egui_impls::add::{{closure}}::h4d050d7832a5c939
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy-inspector-egui-0.18.3/src/inspector_egui_impls/mod.rs:121:28
  17:     0x5590083574e0 - core::option::Option<T>::unwrap_or_else::hb97b3af80f81988b
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/option.rs:979:21
  18:     0x55900830de9c - bevy_inspector_egui::inspector_egui_impls::add::h483c727ca831490d
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy-inspector-egui-0.18.3/src/inspector_egui_impls/mod.rs:119:5
  19:     0x55900832362a - bevy_inspector_egui::inspector_egui_impls::register_std_impls::h78622b6a76de1611
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy-inspector-egui-0.18.3/src/inspector_egui_impls/mod.rs:142:5
  20:     0x55900825b15d - <bevy_inspector_egui::DefaultInspectorConfigPlugin as bevy_app::plugin::Plugin>::build::h3e59c6740ba4ffc9
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy-inspector-egui-0.18.3/src/lib.rs:154:9
  21:     0x55900addbba6 - bevy_app::app::App::add_boxed_plugin::{{closure}}::h39bc918cd613b618
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.10.1/src/app.rs:767:55
  22:     0x55900adcffa9 - core::ops::function::FnOnce::call_once::hc98831048051532e
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/ops/function.rs:250:5
  23:     0x55900adc44f9 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb280059848f86fa
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/panic/unwind_safe.rs:271:9
  24:     0x55900adcb8ff - std::panicking::try::do_call::h03cffdce9db310cc
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:500:40
  25:     0x55900adcecfb - __rust_try
  26:     0x55900adcb87e - std::panicking::try::h4a2c3a16302e3f1f
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:464:19
  27:     0x55900add791a - std::panic::catch_unwind::h2f5336f9aa3fc816
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panic.rs:142:14
  28:     0x55900addb973 - bevy_app::app::App::add_boxed_plugin::h2c124a3298fd0acc
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.10.1/src/app.rs:767:22
  29:     0x5590082567cb - bevy_app::app::App::add_plugin::h3eaaf2518dff1645
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.10.1/src/app.rs:747:15
  30:     0x55900825a8d0 - <bevy_inspector_egui::quick::WorldInspectorPlugin as bevy_app::plugin::Plugin>::build::h2aa2614bc63902cd
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy-inspector-egui-0.18.3/src/quick.rs:62:13
  31:     0x55900addbba6 - bevy_app::app::App::add_boxed_plugin::{{closure}}::h39bc918cd613b618
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.10.1/src/app.rs:767:55
  32:     0x55900adcffa9 - core::ops::function::FnOnce::call_once::hc98831048051532e
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/ops/function.rs:250:5
  33:     0x55900adc44f9 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb280059848f86fa
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/panic/unwind_safe.rs:271:9
  34:     0x55900adcb8ff - std::panicking::try::do_call::h03cffdce9db310cc
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:500:40
  35:     0x55900adcecfb - __rust_try
  36:     0x55900adcb87e - std::panicking::try::h4a2c3a16302e3f1f
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:464:19
  37:     0x55900add791a - std::panic::catch_unwind::h2f5336f9aa3fc816
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panic.rs:142:14
  38:     0x55900addb973 - bevy_app::app::App::add_boxed_plugin::h2c124a3298fd0acc
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.10.1/src/app.rs:767:22
  39:     0x55900824d9c3 - bevy_app::app::App::add_plugin::h3528a824012f8a74
                               at /home/raj/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.10.1/src/app.rs:747:15
  40:     0x55900824cc60 - minesweeper_tutorial::main::hde576690228c473e
                               at /home/raj/src/minesweeper/src/main.rs:21:5
  41:     0x559008248cbb - core::ops::function::FnOnce::call_once::h20531f48c52ded49
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/ops/function.rs:250:5
  42:     0x55900824bd4e - std::sys_common::backtrace::__rust_begin_short_backtrace::h55ba096db65b9b03
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/sys_common/backtrace.rs:135:18
  43:     0x55900824a561 - std::rt::lang_start::{{closure}}::h5c0ce7d1714dd57e
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/rt.rs:166:18
  44:     0x55900b0e5a8b - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hcc4883d946dcf138
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/core/src/ops/function.rs:284:13
  45:     0x55900b0e5a8b - std::panicking::try::do_call::h77829f7a7f88de13
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:500:40
  46:     0x55900b0e5a8b - std::panicking::try::h0dc439302435d6b7
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:464:19
  47:     0x55900b0e5a8b - std::panic::catch_unwind::hf651274712a93429
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panic.rs:142:14
  48:     0x55900b0e5a8b - std::rt::lang_start_internal::{{closure}}::h251a3b7a6f2ffec7
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/rt.rs:148:48
  49:     0x55900b0e5a8b - std::panicking::try::do_call::h5ffc5679741c54c6
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:500:40
  50:     0x55900b0e5a8b - std::panicking::try::hbd5c63ffc844d2d0
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panicking.rs:464:19
  51:     0x55900b0e5a8b - std::panic::catch_unwind::h12025ab3508dacbd
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/panic.rs:142:14
  52:     0x55900b0e5a8b - std::rt::lang_start_internal::h6e2a2aca03688ff4
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/rt.rs:148:20
  53:     0x55900824a53a - std::rt::lang_start::h7d3bf80aa121ace4
                               at /rustc/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0/library/std/src/rt.rs:165:17
  54:     0x55900824ce5e - main
  55:     0x7f9e5357dd90 - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  56:     0x7f9e5357de40 - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:392:3
  57:     0x559008248b45 - _start
  58:                0x0 - <unknown>

You can find my current implementation here: https://github.com/rajsahae/bevy-minesweeper-tutorial

Uncomment the import and addition of the plugin along with the cfg macros in src/main.rs to reproduce the issue.

Can anyone point me to what I could change to fix the issue?

gmorer commented 1 year ago

Hola, i got the same issue, i fixed it by moving my .add_plugins(WorldInspectorPlugin::new()) below my .add_plugins(DefaultPlugins). I guess this is missing in the docs.

jakobhellermann commented 11 months ago

with https://github.com/jakobhellermann/bevy-inspector-egui/commit/6b49d2ce70fdeca113a4ee68d88712351c758697 it will now panic with a nice error message

thread 'main' panicked at crates/bevy-inspector-egui/src/quick.rs:523:9:
`WorldInspectorPlugin` should be added after the default plugins:
        .add_plugins(DefaultPlugins)
        .add_plugins(WorldInspectorPlugin::default())

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace