@@ -21,10 +21,10 @@ static struct tr2_dst tr2dst_perf = { TR2_SYSENV_PERF, 0, 0, 0 };
21
21
*/
22
22
static int tr2env_perf_be_brief ;
23
23
24
- #define TR2FMT_PERF_FL_WIDTH (50 )
24
+ #define TR2FMT_PERF_FL_WIDTH (28 )
25
25
#define TR2FMT_PERF_MAX_EVENT_NAME (12)
26
- #define TR2FMT_PERF_REPO_WIDTH (4 )
27
- #define TR2FMT_PERF_CATEGORY_WIDTH (10 )
26
+ #define TR2FMT_PERF_REPO_WIDTH (3 )
27
+ #define TR2FMT_PERF_CATEGORY_WIDTH (12 )
28
28
29
29
#define TR2_DOTS_BUFFER_SIZE (100)
30
30
#define TR2_INDENT (2)
@@ -79,17 +79,36 @@ static void perf_fmt_prepare(const char *event_name,
79
79
80
80
if (!tr2env_perf_be_brief ) {
81
81
struct tr2_tbuf tb_now ;
82
+ size_t fl_end_col ;
82
83
83
84
tr2_tbuf_local_time (& tb_now );
84
85
strbuf_addstr (buf , tb_now .buf );
85
86
strbuf_addch (buf , ' ' );
86
87
87
- if (file && * file )
88
- strbuf_addf (buf , "%s:%d " , file , line );
89
- while (buf -> len < TR2FMT_PERF_FL_WIDTH )
88
+ fl_end_col = buf -> len + TR2FMT_PERF_FL_WIDTH ;
89
+
90
+ if (file && * file ) {
91
+ struct strbuf buf_fl = STRBUF_INIT ;
92
+
93
+ strbuf_addf (& buf_fl , "%s:%d" , file , line );
94
+
95
+ if (buf_fl .len <= TR2FMT_PERF_FL_WIDTH )
96
+ strbuf_addbuf (buf , & buf_fl );
97
+ else {
98
+ size_t avail = TR2FMT_PERF_FL_WIDTH - 3 ;
99
+ strbuf_addstr (buf , "..." );
100
+ strbuf_add (buf ,
101
+ & buf_fl .buf [buf_fl .len - avail ],
102
+ avail );
103
+ }
104
+
105
+ strbuf_release (& buf_fl );
106
+ }
107
+
108
+ while (buf -> len < fl_end_col )
90
109
strbuf_addch (buf , ' ' );
91
110
92
- strbuf_addstr (buf , "| " );
111
+ strbuf_addstr (buf , " | " );
93
112
}
94
113
95
114
strbuf_addf (buf , "d%d | " , tr2_sid_depth ());
@@ -102,7 +121,7 @@ static void perf_fmt_prepare(const char *event_name,
102
121
strbuf_addf (buf , "r%d " , repo -> trace2_repo_id );
103
122
while (buf -> len < len )
104
123
strbuf_addch (buf , ' ' );
105
- strbuf_addstr (buf , "| " );
124
+ strbuf_addstr (buf , " | " );
106
125
107
126
if (p_us_elapsed_absolute )
108
127
strbuf_addf (buf , "%9.6f | " ,
@@ -116,8 +135,8 @@ static void perf_fmt_prepare(const char *event_name,
116
135
else
117
136
strbuf_addf (buf , "%9s | " , " " );
118
137
119
- strbuf_addf (buf , "%-*s | " , TR2FMT_PERF_CATEGORY_WIDTH ,
120
- (category ? category : "" ));
138
+ strbuf_addf (buf , "%-*.* s | " , TR2FMT_PERF_CATEGORY_WIDTH ,
139
+ TR2FMT_PERF_CATEGORY_WIDTH , (category ? category : "" ));
121
140
122
141
if (ctx -> nr_open_regions > 0 ) {
123
142
int len_indent = TR2_INDENT_LENGTH (ctx );
@@ -165,7 +184,7 @@ static void fn_start_fl(const char *file, int line,
165
184
const char * event_name = "start" ;
166
185
struct strbuf buf_payload = STRBUF_INIT ;
167
186
168
- sq_quote_argv_pretty (& buf_payload , argv );
187
+ sq_quote_argv_pretty_ltrim (& buf_payload , argv );
169
188
170
189
perf_io_write_fl (file , line , event_name , NULL , & us_elapsed_absolute ,
171
190
NULL , NULL , & buf_payload );
@@ -220,11 +239,6 @@ static void maybe_append_string_va(struct strbuf *buf, const char *fmt,
220
239
va_end (copy_ap );
221
240
return ;
222
241
}
223
-
224
- if (fmt && * fmt ) {
225
- strbuf_addstr (buf , fmt );
226
- return ;
227
- }
228
242
}
229
243
230
244
static void fn_error_va_fl (const char * file , int line , const char * fmt ,
@@ -285,8 +299,9 @@ static void fn_alias_fl(const char *file, int line, const char *alias,
285
299
const char * event_name = "alias" ;
286
300
struct strbuf buf_payload = STRBUF_INIT ;
287
301
288
- strbuf_addf (& buf_payload , "alias:%s argv:" , alias );
289
- sq_quote_argv_pretty (& buf_payload , argv );
302
+ strbuf_addf (& buf_payload , "alias:%s argv:[" , alias );
303
+ sq_quote_argv_pretty_ltrim (& buf_payload , argv );
304
+ strbuf_addch (& buf_payload , ']' );
290
305
291
306
perf_io_write_fl (file , line , event_name , NULL , NULL , NULL , NULL ,
292
307
& buf_payload );
@@ -315,10 +330,14 @@ static void fn_child_start_fl(const char *file, int line,
315
330
sq_quote_buf_pretty (& buf_payload , cmd -> dir );
316
331
}
317
332
318
- strbuf_addstr (& buf_payload , " argv:" );
319
- if (cmd -> git_cmd )
320
- strbuf_addstr (& buf_payload , " git" );
321
- sq_quote_argv_pretty (& buf_payload , cmd -> argv );
333
+ strbuf_addstr (& buf_payload , " argv:[" );
334
+ if (cmd -> git_cmd ) {
335
+ strbuf_addstr (& buf_payload , "git" );
336
+ if (cmd -> argv [0 ])
337
+ strbuf_addch (& buf_payload , ' ' );
338
+ }
339
+ sq_quote_argv_pretty_ltrim (& buf_payload , cmd -> argv );
340
+ strbuf_addch (& buf_payload , ']' );
322
341
323
342
perf_io_write_fl (file , line , event_name , NULL , & us_elapsed_absolute ,
324
343
NULL , NULL , & buf_payload );
@@ -369,10 +388,14 @@ static void fn_exec_fl(const char *file, int line, uint64_t us_elapsed_absolute,
369
388
struct strbuf buf_payload = STRBUF_INIT ;
370
389
371
390
strbuf_addf (& buf_payload , "id:%d " , exec_id );
372
- strbuf_addstr (& buf_payload , "argv:" );
373
- if (exe )
374
- strbuf_addf (& buf_payload , " %s" , exe );
375
- sq_quote_argv_pretty (& buf_payload , argv );
391
+ strbuf_addstr (& buf_payload , "argv:[" );
392
+ if (exe ) {
393
+ strbuf_addstr (& buf_payload , exe );
394
+ if (argv [0 ])
395
+ strbuf_addch (& buf_payload , ' ' );
396
+ }
397
+ sq_quote_argv_pretty_ltrim (& buf_payload , argv );
398
+ strbuf_addch (& buf_payload , ']' );
376
399
377
400
perf_io_write_fl (file , line , event_name , NULL , & us_elapsed_absolute ,
378
401
NULL , NULL , & buf_payload );
@@ -433,8 +456,11 @@ static void fn_region_enter_printf_va_fl(const char *file, int line,
433
456
struct strbuf buf_payload = STRBUF_INIT ;
434
457
435
458
if (label )
436
- strbuf_addf (& buf_payload , "label:%s " , label );
437
- maybe_append_string_va (& buf_payload , fmt , ap );
459
+ strbuf_addf (& buf_payload , "label:%s" , label );
460
+ if (fmt && * fmt ) {
461
+ strbuf_addch (& buf_payload , ' ' );
462
+ maybe_append_string_va (& buf_payload , fmt , ap );
463
+ }
438
464
439
465
perf_io_write_fl (file , line , event_name , repo , & us_elapsed_absolute ,
440
466
NULL , category , & buf_payload );
@@ -450,8 +476,11 @@ static void fn_region_leave_printf_va_fl(
450
476
struct strbuf buf_payload = STRBUF_INIT ;
451
477
452
478
if (label )
453
- strbuf_addf (& buf_payload , "label:%s " , label );
454
- maybe_append_string_va (& buf_payload , fmt , ap );
479
+ strbuf_addf (& buf_payload , "label:%s" , label );
480
+ if (fmt && * fmt ) {
481
+ strbuf_addch (& buf_payload , ' ' );
482
+ maybe_append_string_va (& buf_payload , fmt , ap );
483
+ }
455
484
456
485
perf_io_write_fl (file , line , event_name , repo , & us_elapsed_absolute ,
457
486
& us_elapsed_region , category , & buf_payload );
0 commit comments