rust/compiler/rustc_driver_impl/src
Matthias Krüger dafea5f919
Rollup merge of #113565 - workingjubilee:better-signal-handler-message, r=pnkfelix
Make SIGSEGV handler emit nicer backtraces

This annotates the code heavily with comments to explain what is going on, for the benefit of other compiler contributors. The backtrace also emits appropriate comments to clarify, to a programmer who may not know why a bunch of file paths and hexadecimal blather was just dumped into stderr, what is going on. Finally, it detects cycles and uses their regularity to avoid repeating a bunch of text. The previous backtraces we were emitting was extremely unfriendly, potentially confusing, and often alarming, and this makes things almost "nice".

We can't necessarily make them much nicer than this, because a signal handler must use "signal-safe" functions. This precludes conveniences like dynamic allocations. Fortunately, Rust's stdlib has allocation-free formatting, but it may hinder integrating this error with our localization middleware, as I wasn't able to clearly ascertain, at a glance, whether there was a zero-alloc path through it.

r? `@Nilstrieb`
2023-08-30 07:18:10 +02:00
..
args.rs Provide more context for rustc +nightly -Zunstable-options on stable 2023-06-27 23:23:33 +08:00
lib.rs Rollup merge of #113565 - workingjubilee:better-signal-handler-message, r=pnkfelix 2023-08-30 07:18:10 +02:00
pretty.rs Move OutFileName writing into rustc_session 2023-07-20 11:04:31 -07:00
print.rs Fix ICE on --print=... i/o errors 2023-04-25 08:17:18 -07:00
session_diagnostics.rs Rollup merge of #113780 - dtolnay:printkindpath, r=b-naber 2023-07-21 06:52:28 +02:00
signal_handler.rs Clarify arbitrary constants 2023-07-19 00:22:04 -07:00