aboutsummaryrefslogtreecommitdiff
path: root/lib/std/debug/Dwarf.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2025-09-19 13:35:12 +0100
committermlugg <mlugg@mlugg.co.uk>2025-09-30 13:44:55 +0100
commit099a95041054e456ebefbd75f6a4f9f6961002be (patch)
tree6293805ebdf2664d5b5906e614297972a7c8da6f /lib/std/debug/Dwarf.zig
parent9c1821d3bfadc5eddd4dff271a4920c03ee0ffea (diff)
downloadzig-099a95041054e456ebefbd75f6a4f9f6961002be.tar.gz
zig-099a95041054e456ebefbd75f6a4f9f6961002be.zip
std.debug.SelfInfo: thread safety
This has been a TODO for ages, but in the past it didn't really matter because stack traces are typically printed to stderr for which a mutex is held so in practice there was a mutex guarding usage of `SelfInfo`. However, now that `SelfInfo` is also used for simply capturing traces, thread safety is needed. Instead of just a single mutex, though, there are a couple of different mutexes involved; this helps make critical sections smaller, particularly when unwinding the stack as `unwindFrame` doesn't typically need to hold any lock at all.
Diffstat (limited to 'lib/std/debug/Dwarf.zig')
-rw-r--r--lib/std/debug/Dwarf.zig2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/std/debug/Dwarf.zig b/lib/std/debug/Dwarf.zig
index 655a65b709..3934777ea5 100644
--- a/lib/std/debug/Dwarf.zig
+++ b/lib/std/debug/Dwarf.zig
@@ -346,7 +346,7 @@ pub fn deinit(di: *Dwarf, gpa: Allocator) void {
di.* = undefined;
}
-pub fn getSymbolName(di: *Dwarf, address: u64) ?[]const u8 {
+pub fn getSymbolName(di: *const Dwarf, address: u64) ?[]const u8 {
// Iterate the function list backwards so that we see child DIEs before their parents. This is
// important because `DW_TAG_inlined_subroutine` DIEs will have a range which is a sub-range of
// their caller, and we want to return the callee's name, not the caller's.