diff --git a/build.zig b/build.zig index 8873db880ca772dd209fcb20bda1b0a4965498cf..f9598171bf647af457dd1d015df7749695051ea8 100644 --- a/build.zig +++ b/build.zig @@ -9,6 +9,7 @@ pub fn build(b: *std.Build) void { addTest(b, target, mode, mod, 0); addTest(b, target, mode, mod, 1); addTest(b, target, mode, mod, 2); + addTest(b, target, mode, mod, 3); } fn addTest(b: *std.Build, target: std.zig.CrossTarget, mode: std.builtin.Mode, mod: *std.build.Module, comptime backend: u8) void { diff --git a/src/chrome.zig b/src/chrome.zig index b134b778eecc19c326c4a976dc451a344578fad3..b8bd32b0e72228ca8d93e092c7b07fef18411288 100644 --- a/src/chrome.zig +++ b/src/chrome.zig @@ -22,7 +22,7 @@ pub fn deinit() void { pub fn init_thread() !void { tid = std.os.linux.gettid(); - path = try std.fmt.allocPrint(alloc, "/data/trace.{d}.{d}.spall.json", .{ pid, tid }); + path = try std.fmt.allocPrint(alloc, "/data/trace.{d}.{d}.chrome.json", .{ pid, tid }); file = try std.fs.cwd().createFile(path, .{}); buffered_writer = std.io.bufferedWriter(file.writer()); @@ -38,16 +38,19 @@ pub fn deinit_thread() void { log.debug("{s}", .{path}); } -pub inline fn trace_begin(ctx: tracer.Ctx) void { +pub inline fn trace_begin(ctx: tracer.Ctx, comptime ifmt: []const u8, iargs: anytype) void { buffered_writer.writer().print( - \\{{"cat":"function", "name":"{s}:{d}:{d} ({s})", "ph": "B", "pid": {d}, "tid": {d}, "ts": {d}}}, - \\ + \\{{"cat":"function", "name":"{s}:{d}:{d} ({s}) + ++ ifmt ++ + \\", "ph": "B", "pid": {d}, "tid": {d}, "ts": {d}}}, + \\ , .{ if (ctx.src.file[0] == '/') ctx.src.file[trim_count..] else ctx.src.file, ctx.src.line, ctx.src.column, ctx.src.fn_name, + } ++ iargs ++ .{ pid, tid, std.time.microTimestamp(), diff --git a/src/main.zig b/src/main.zig index c4b2c31c8d5bc19795f7b3c2f0d562bb9e330bdd..7c9ac56c20fbfc3b3350992db65e9653586deda4 100644 --- a/src/main.zig +++ b/src/main.zig @@ -6,6 +6,7 @@ pub const tracer_impl = switch (build_options.backend) { 0 => tracer.none, 1 => tracer.log, 2 => tracer.spall, + 3 => tracer.chrome, else => unreachable, };