Logo

index : blog

---

  • summary
  • about
  • tree
  • log
  • branches
<< path: root/public/blog.git/html/src/quick_trace.jai blob: c3003fc59d59953e9d9ddba93a7546f523a40071 [raw] [clear marker]

        
0#import "Basic";
1#import "Print_Color";
2
3
4#module_parameters (ENABLE_TRACING := true);
5
6
7qtrace :: (
8 $label: string = "", color: Console_Color = COLOR_DEFAULT, loc := #caller_location
9) #expand {
10 #if ENABLE_TRACING {
11 ts_start := current_time_monotonic();
12 `defer delta_report(label, ts_start, #procedure_name(), color, loc);
13 }
14}
15
16
17#scope_file
18
19
20COLOR_DEFAULT :: Console_Color.YELLOW;
21
22
23delta_report :: (
24 $label: string,
25 ts_start: Apollo_Time,
26 proc_name: string,
27 color: Console_Color,
28 loc: Source_Code_Location
29) {
30 ts_now := current_time_monotonic();
31 delta := ts_now - ts_start;
32
33 us := to_microseconds(delta);
34 ms := to_milliseconds(delta);
35 s := to_seconds(delta);
36
37 using loc;
38
39 print_color("PROCEDURE: %", proc_name, color=color, style=.BOLD);
40 print("\n");
41 #if label {
42 print_color("Label: %", label, color=color);
43 print("\n");
44 }
45 print_color("Delta: % us % ms % s", us, ms, s, color=color);
46 print("\n");
47 print_color(
48 "Location: %: %:%",
49 fully_pathed_filename,
50 line_number,
51 character_number,
52 color=color
53 );
54 print("\n\n");
55}
56
57
Copyright 2026  E766CB298A6D1E64 | Git-Thing heavily inspired by cgit