Commit Graph

3 Commits

Author SHA1 Message Date
Jubilee
3dee9775a8 Clarify arbitrary constants
First, we reuse the `MAX_FRAMES` constant.

Co-authored-by: erikdesjardins <erikdesjardins@users.noreply.github.com>

Then we choose an arbitrary recursion depth for
the other case. In this case, I used 2d20. Honest.
2023-07-19 00:22:04 -07:00
Jubilee Young
1e65b5b741 Add recursion detection to signal-safe backtrace
This cleans up the formatting of the backtrace considerably,
dodging the fact that a backtrace with recursion normally
emits hundreds of lines. Instead, simply write repeated symbols,
and add how many times the recursion occurred.
Also, it makes it look more like the "normal" backtrace.

Some fine details in the code are important for reducing
the amount of possible panic branches.
2023-07-19 00:19:23 -07:00
Jubilee Young
4fa00c2507 Explain SIGSEGV backtrace handler
...to both compiler contributors and other rustc invokers.
The previous error messaging was extremely unfriendly,
and potentially both confusing and alarming.

The entire modules is extracted into a new file to help
ease of reading, and plenty of comments get layered in.
The design of the messaging is focused on preventing
the overall purpose of the output from being too opaque
in common cases, so users understand why it is there.
There's not an immediate need for it being actionable,
but some suggestions are offered anyways.
2023-07-19 00:15:00 -07:00