rust icon indicating copy to clipboard operation
rust copied to clipboard

interpret: expose generate_stacktrace without full InterpCx

Open RalfJung opened this issue 1 year ago • 4 comments

In Miri we sometimes want to emit diagnostics without having a full &InterpCx available. To avoid duplicating code, this adds a way to get a stacktrace from an arbitrary slice of interpreter frames, that Miri can use with access to just a thread manager.

RalfJung avatar Sep 18 '22 17:09 RalfJung

Some changes occurred to the CTFE / Miri engine

cc @rust-lang/miri

rustbot avatar Sep 18 '22 17:09 rustbot

r? @nagisa

(rust-highfive has picked a reviewer for you, use r? to override)

rust-highfive avatar Sep 18 '22 17:09 rust-highfive

r? @oli-obk

RalfJung avatar Sep 18 '22 17:09 RalfJung

The job mingw-check failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
configure: rust.debug-assertions := True
configure: rust.overflow-checks := True
configure: llvm.assertions      := True
configure: dist.missing-tools   := True
configure: build.configure-args := ['--enable-sccache', '--disable-manage-submodu ...
configure: writing `config.toml` in current directory
configure: 
configure: run `python /checkout/x.py --help`
Attempting with retry: make prepare
---
skip untracked path src/llvm-project/ during rustfmt invocations
Diff in /checkout/compiler/rustc_const_eval/src/interpret/eval_context.rs at line 929:
     }
 
     #[must_use]
-    pub fn generate_stacktrace_from_stack(stack: &[Frame<'mir, 'tcx, M::Provenance, M::FrameExtra>]) -> Vec<FrameInfo<'tcx>> {
+    pub fn generate_stacktrace_from_stack(
+        stack: &[Frame<'mir, 'tcx, M::Provenance, M::FrameExtra>],
         let mut frames = Vec::new();
         let mut frames = Vec::new();
         // This deliberately does *not* honor `requires_caller_location` since it is used for much
         // more than just panics.
Running `"/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/rustfmt" "--config-path" "/checkout" "--edition" "2021" "--unstable-features" "--skip-children" "--check" "/checkout/compiler/rustc_trait_selection/src/traits/query/mod.rs" "/checkout/compiler/rustc_trait_selection/src/traits/query/normalize.rs" "/checkout/compiler/rustc_trait_selection/src/traits/query/dropck_outlives.rs" "/checkout/compiler/rustc_trait_selection/src/traits/query/method_autoderef.rs" "/checkout/compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs" "/checkout/compiler/rustc_trait_selection/src/traits/query/type_op/normalize.rs" "/checkout/compiler/rustc_trait_selection/src/traits/select/mod.rs" "/checkout/compiler/rustc_const_eval/src/interpret/eval_context.rs"` failed.
Build completed unsuccessfully in 0:00:11
If you're running `tidy`, try again with `--bless`. Or, if you just want to format code, run `./x.py fmt` instead.

rust-log-analyzer avatar Sep 18 '22 17:09 rust-log-analyzer

@bors r+ rollup

oli-obk avatar Sep 19 '22 14:09 oli-obk

:pushpin: Commit 9fa3171015c63edc541d45583f2a24af3fa4d2bc has been approved by oli-obk

It is now in the queue for this repository.

bors avatar Sep 19 '22 14:09 bors