Commit Graph

9 Commits

Author SHA1 Message Date
mlugg 1392a7af17 std.debug: unwinding on Windows
...using `RtlVirtualUnwind` on x86_64 and aarch64, and
`RtaCaptureStackBackTrace` on x86.
2025-09-30 13:44:52 +01:00
mlugg f1215adeda SelfInfo.DarwinModule: rename field 2025-09-30 13:44:51 +01:00
mlugg 253fdfce70 SelfInfo: be honest about how general unwinding is
...in that it isn't: it's currently very specialized to DWARF unwinding.

Also, make a type unmanaged.
2025-09-30 13:44:51 +01:00
mlugg 9859440d83 add freestanding support IN THEORY
untested because this branch has errors rn
2025-09-30 13:44:51 +01:00
mlugg 5709369d05 std.debug: improve the APIs and stuff 2025-09-30 13:44:51 +01:00
mlugg c895aa7a35 std.debug.SelfInfo: concrete error sets
The downside of this commit is that more precise errors are no longer
propagated up. However, these errors were pretty useless in isolation
due to them having no context; and regardless, we intentionally swallow
most of them in `std.debug` anyway. Therefore, this is better in
practice, because it allows `std.debug` to give slightly more useful
warnings when handling errors. This commit does that for unwind errors,
for instance, which differentiate between the unwind info being corrupt
vs missing vs inaccessible vs unsupported.

A better solution would be to also include more detailed information via
the diagnostics pattern, but this commit is an incremental improvement.
2025-09-30 13:44:50 +01:00
mlugg 4b47a37717 stash? more like no 2025-09-30 13:44:50 +01:00
mlugg 665f13b0cd SelfInfo deinit magic 2025-09-30 13:44:50 +01:00
mlugg ba3f38959a split SelfInfo into a file per impl 2025-09-30 13:44:50 +01:00