Skip to content

Commit

Permalink
add panic location to 'panicked while processing panic'
Browse files Browse the repository at this point in the history
  • Loading branch information
RalfJung committed Mar 23, 2024
1 parent e3df96c commit 8ba828b
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
8 changes: 7 additions & 1 deletion library/std/src/panicking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -746,7 +746,13 @@ fn rust_panic_with_hook(
panic_count::MustAbort::PanicInHook => {
// Don't try to print the message in this case
// - perhaps that is causing the recursive panics.
rtprintpanic!("thread panicked while processing panic. aborting.\n");
let panicinfo = PanicInfo::internal_constructor(
None, // no message
location, // but we want to show the location!
can_unwind,
force_no_backtrace,
);
rtprintpanic!("{panicinfo}\nthread panicked while processing panic. aborting.\n");
}
panic_count::MustAbort::AlwaysAbort => {
// Unfortunately, this does not print a backtrace, because creating
Expand Down
25 changes: 25 additions & 0 deletions tests/ui/panics/panic-in-message-fmt.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Checks what happens when formatting the panic message panics.

//@ run-fail
//@ exec-env:RUST_BACKTRACE=0
//@ check-run-results
//@ error-pattern: panicked while processing panic
//@ normalize-stderr-test: "\n +[0-9]+:[^\n]+" -> ""
//@ normalize-stderr-test: "\n +at [^\n]+" -> ""
//@ normalize-stderr-test: "(core/src/panicking\.rs):[0-9]+:[0-9]+" -> "$1:$$LINE:$$COL"
//@ ignore-emscripten "RuntimeError" junk in output

use std::fmt::{Display, self};

struct MyStruct;

impl Display for MyStruct {
fn fmt(&self, _: &mut fmt::Formatter<'_>) -> fmt::Result {
todo!()
}
}

fn main() {
let instance = MyStruct;
panic!("this is wrong: {}", instance);
}
2 changes: 2 additions & 0 deletions tests/ui/panics/panic-in-message-fmt.run.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
panicked at $DIR/panic-in-message-fmt.rs:18:9
thread panicked while processing panic. aborting.

0 comments on commit 8ba828b

Please sign in to comment.