diff --git a/src/main.zig b/src/main.zig index cc3d468..e41d25f 100644 --- a/src/main.zig +++ b/src/main.zig @@ -181,6 +181,10 @@ fn runRelay() !void { // GPA logs every allocation that was never freed, with stack traces. var gpa: std.heap.DebugAllocator(.{ .stack_trace_frames = if (build_options.use_gpa) 8 else 0, + // catch use-after-free at the use site with the free site's stack: + // freed regions are kept unmapped-but-tracked instead of recycled. + .retain_metadata = build_options.use_gpa, + .never_unmap = build_options.use_gpa, }) = .init; defer if (build_options.use_gpa) { log.info("GPA: checking for leaks...", .{});