Closed
Description
I tried this code:
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert(1, "a");
println!("map = {:?}", map);
}
I expected to see this happen: map = {1: "a"}
Instead, error happened:
# ./hello_world_ilp32
thread 'main' panicked at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:136:5:
unsafe precondition(s) violated: NonNull::new_unchecked requires that the pointer is non-null
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread caused non-unwinding panic. aborting.
Aborted
Sometimes it causes Segmentation fault:
# ./hello_world_ilp32
Segmentation fault
Meta
rustc --version --verbose
:
rustc 1.74.0-nightly (3223b0b5e 2023-09-20)
binary: rustc
commit-hash: 3223b0b5e8dadda3f76c3fd1a8d6c5addc09599e
commit-date: 2023-09-20
host: x86_64-unknown-linux-gnu
release: 1.74.0-nightly
LLVM version: 17.0.0
compilation command
:
cargo +nightly build --target aarch64_be-unknown-linux-gnu_ilp32 -Zbuild-std
.cargo/config
:
[target.aarch64_be-unknown-linux-gnu_ilp32]
linker = "/opt/buildtools/rtos/opt/RTOS/207.7.0/arm64be_4.4_ek/bin/aarch64_be-linux-gnuilp32-gcc"
Backtrace
stack backtrace:
0: rust_begin_unwind
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:597:5
1: core::panicking::panic_nounwind_fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:106:14
2: core::panicking::panic_nounwind
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:136:5
3: core::ptr::const_ptr::<impl *const T>::sub_ptr::runtime
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics.rs:2531:21
4: core::ptr::const_ptr::<impl *const T>::sub_ptr
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs:792:13
5: core::ptr::non_null::NonNull<T>::sub_ptr
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:507:18
6: <core::slice::iter::Iter<T> as core::iter::traits::exact_size::ExactSizeIterator>::len
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:142:17
7: <core::str::iter::CharIndices as core::iter::traits::iterator::Iterator>::next
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs:139:23
8: <str as core::fmt::Debug>::fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2336:23
9: <&T as core::fmt::Debug>::fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2288:62
10: <&T as core::fmt::Debug>::fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2288:62
11: core::fmt::builders::DebugMap::value::{{closure}}
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/builders.rs:850:17
12: core::result::Result<T,E>::and_then
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1320:22
13: core::fmt::builders::DebugMap::value
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/builders.rs:841:23
14: core::fmt::builders::DebugMap::entry
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/builders.rs:741:9
15: core::fmt::builders::DebugMap::entries
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/builders.rs:893:13
16: <std::collections::hash::map::HashMap<K,V,S> as core::fmt::Debug>::fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/collections/hash/map.rs:1309:9
17: core::fmt::rt::Argument::fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/rt.rs:138:9
18: core::fmt::write
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:1114:17
19: std::io::Write::write_fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/io/mod.rs:1714:15
20: <&std::io::stdio::Stdout as std::io::Write>::write_fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/io/stdio.rs:726:9
21: <std::io::stdio::Stdout as std::io::Write>::write_fmt
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/io/stdio.rs:700:9
22: std::io::stdio::print_to
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/io/stdio.rs:1018:21
23: std::io::stdio::_print
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/io/stdio.rs:1095:5
24: hello_world_ilp32::main
at /usr3/s00659936/rust_program/helloworld_ilp32/src/main.rs:7:5
25: core::ops::function::FnOnce::call_once
at /root/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5