@@ -21,10 +21,10 @@ static struct tr2_dst tr2dst_perf = { TR2_SYSENV_PERF, 0, 0, 0 };
2121 */
2222static int tr2env_perf_be_brief ;
2323
24- #define TR2FMT_PERF_FL_WIDTH (50 )
24+ #define TR2FMT_PERF_FL_WIDTH (28 )
2525#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 )
2828
2929#define TR2_DOTS_BUFFER_SIZE (100)
3030#define TR2_INDENT (2)
@@ -79,17 +79,36 @@ static void perf_fmt_prepare(const char *event_name,
7979
8080 if (!tr2env_perf_be_brief ) {
8181 struct tr2_tbuf tb_now ;
82+ size_t fl_end_col ;
8283
8384 tr2_tbuf_local_time (& tb_now );
8485 strbuf_addstr (buf , tb_now .buf );
8586 strbuf_addch (buf , ' ' );
8687
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 )
90109 strbuf_addch (buf , ' ' );
91110
92- strbuf_addstr (buf , "| " );
111+ strbuf_addstr (buf , " | " );
93112 }
94113
95114 strbuf_addf (buf , "d%d | " , tr2_sid_depth ());
@@ -102,7 +121,7 @@ static void perf_fmt_prepare(const char *event_name,
102121 strbuf_addf (buf , "r%d " , repo -> trace2_repo_id );
103122 while (buf -> len < len )
104123 strbuf_addch (buf , ' ' );
105- strbuf_addstr (buf , "| " );
124+ strbuf_addstr (buf , " | " );
106125
107126 if (p_us_elapsed_absolute )
108127 strbuf_addf (buf , "%9.6f | " ,
@@ -116,8 +135,8 @@ static void perf_fmt_prepare(const char *event_name,
116135 else
117136 strbuf_addf (buf , "%9s | " , " " );
118137
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 : "" ));
121140
122141 if (ctx -> nr_open_regions > 0 ) {
123142 int len_indent = TR2_INDENT_LENGTH (ctx );
@@ -165,7 +184,7 @@ static void fn_start_fl(const char *file, int line,
165184 const char * event_name = "start" ;
166185 struct strbuf buf_payload = STRBUF_INIT ;
167186
168- sq_quote_argv_pretty (& buf_payload , argv );
187+ sq_quote_argv_pretty_ltrim (& buf_payload , argv );
169188
170189 perf_io_write_fl (file , line , event_name , NULL , & us_elapsed_absolute ,
171190 NULL , NULL , & buf_payload );
@@ -220,11 +239,6 @@ static void maybe_append_string_va(struct strbuf *buf, const char *fmt,
220239 va_end (copy_ap );
221240 return ;
222241 }
223-
224- if (fmt && * fmt ) {
225- strbuf_addstr (buf , fmt );
226- return ;
227- }
228242}
229243
230244static 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,
285299 const char * event_name = "alias" ;
286300 struct strbuf buf_payload = STRBUF_INIT ;
287301
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 , ']' );
290305
291306 perf_io_write_fl (file , line , event_name , NULL , NULL , NULL , NULL ,
292307 & buf_payload );
@@ -315,10 +330,14 @@ static void fn_child_start_fl(const char *file, int line,
315330 sq_quote_buf_pretty (& buf_payload , cmd -> dir );
316331 }
317332
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 , ']' );
322341
323342 perf_io_write_fl (file , line , event_name , NULL , & us_elapsed_absolute ,
324343 NULL , NULL , & buf_payload );
@@ -369,10 +388,14 @@ static void fn_exec_fl(const char *file, int line, uint64_t us_elapsed_absolute,
369388 struct strbuf buf_payload = STRBUF_INIT ;
370389
371390 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 , ']' );
376399
377400 perf_io_write_fl (file , line , event_name , NULL , & us_elapsed_absolute ,
378401 NULL , NULL , & buf_payload );
@@ -433,8 +456,11 @@ static void fn_region_enter_printf_va_fl(const char *file, int line,
433456 struct strbuf buf_payload = STRBUF_INIT ;
434457
435458 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+ }
438464
439465 perf_io_write_fl (file , line , event_name , repo , & us_elapsed_absolute ,
440466 NULL , category , & buf_payload );
@@ -450,8 +476,11 @@ static void fn_region_leave_printf_va_fl(
450476 struct strbuf buf_payload = STRBUF_INIT ;
451477
452478 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+ }
455484
456485 perf_io_write_fl (file , line , event_name , repo , & us_elapsed_absolute ,
457486 & us_elapsed_region , category , & buf_payload );
0 commit comments