authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-08-05 17:31:12-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-08-07 00:48:32-07:00
log895fa87d7717ae861dd925b814be31897abd65c1
treea2b4c7656e314996018437f1c9267b24b3454807
parentbfc2ee03e5b9fa74b047f41ff78d671f53fc7c79

dump-cov: show seen PCs


1 files changed, 6 insertions(+), 3 deletions(-)

tools/dump-cov.zig+6-3
......@@ -53,15 +53,18 @@ pub fn main() !void {
5353 }
5454 assert(std.sort.isSorted(usize, pcs, {}, std.sort.asc(usize)));
5555
56 const seen_pcs = cov_bytes[@sizeOf(SeenPcsHeader) + pcs.len * @sizeOf(usize) ..];
57
5658 const source_locations = try arena.alloc(std.debug.Coverage.SourceLocation, pcs.len);
5759 try debug_info.resolveAddresses(gpa, pcs, source_locations);
5860
59 for (pcs, source_locations) |pc, sl| {
61 for (pcs, source_locations, 0..) |pc, sl, i| {
6062 const file = debug_info.coverage.fileAt(sl.file);
6163 const dir_name = debug_info.coverage.directories.keys()[file.directory_index];
6264 const dir_name_slice = debug_info.coverage.stringAt(dir_name);
63 try stdout.print("{x}: {s}/{s}:{d}:{d}\n", .{
64 pc, dir_name_slice, debug_info.coverage.stringAt(file.basename), sl.line, sl.column,
65 const hit: u1 = @truncate(seen_pcs[i / 8] >> @intCast(i % 8));
66 try stdout.print("{c}{x}: {s}/{s}:{d}:{d}\n", .{
67 "-+"[hit], pc, dir_name_slice, debug_info.coverage.stringAt(file.basename), sl.line, sl.column,
6568 });
6669 }
6770