From d00cc100867bbb7a5e4305a5597cb45982c4593f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 22 Aug 2025 18:30:21 -0700 Subject: std.debug: delete MemoryAccessor This API is based around the unsound idea that a process can perform checked virtual memory loads to prevent crashing. This depends on OS-specific APIs that may be unavailable, disabled, or impossible due to virtualization. It also makes collecting stack traces ridiculously slow, which is a problem for users of DebugAllocator - in other words, everybody, all the time. It also makes strace go from being superbly clean to being awful. --- lib/std/debug/FixedBufferReader.zig | 23 ----------------------- 1 file changed, 23 deletions(-) (limited to 'lib/std/debug/FixedBufferReader.zig') diff --git a/lib/std/debug/FixedBufferReader.zig b/lib/std/debug/FixedBufferReader.zig index e4aec1a9c6..edf763892f 100644 --- a/lib/std/debug/FixedBufferReader.zig +++ b/lib/std/debug/FixedBufferReader.zig @@ -1,7 +1,6 @@ //! Optimized for performance in debug builds. const std = @import("../std.zig"); -const MemoryAccessor = std.debug.MemoryAccessor; const FixedBufferReader = @This(); @@ -38,17 +37,6 @@ pub fn readInt(fbr: *FixedBufferReader, comptime T: type) Error!T { return std.mem.readInt(T, fbr.buf[fbr.pos..][0..size], fbr.endian); } -pub fn readIntChecked( - fbr: *FixedBufferReader, - comptime T: type, - ma: *MemoryAccessor, -) Error!T { - if (ma.load(T, @intFromPtr(fbr.buf[fbr.pos..].ptr)) == null) - return error.InvalidBuffer; - - return fbr.readInt(T); -} - pub fn readUleb128(fbr: *FixedBufferReader, comptime T: type) Error!T { return std.leb.readUleb128(T, fbr); } @@ -64,17 +52,6 @@ pub fn readAddress(fbr: *FixedBufferReader, format: std.dwarf.Format) Error!u64 }; } -pub fn readAddressChecked( - fbr: *FixedBufferReader, - format: std.dwarf.Format, - ma: *MemoryAccessor, -) Error!u64 { - return switch (format) { - .@"32" => try fbr.readIntChecked(u32, ma), - .@"64" => try fbr.readIntChecked(u64, ma), - }; -} - pub fn readBytes(fbr: *FixedBufferReader, len: usize) Error![]const u8 { if (fbr.buf.len - fbr.pos < len) return error.EndOfBuffer; defer fbr.pos += len; -- cgit v1.2.3