trace2: emit 'def_param' set with 'cmd_name' event
Some commands do not cause a set of 'def_param' events to be emitted. This includes "git-remote-https", "git-http-fetch", and various "query" commands, like "git --man-path". Since all of these commands do emit a 'cmd_name' event, add code to the "trace2_cmd_name()" function to generate the set of 'def_param' events. Remove explicit calls to "trace2_cmd_list_config()" and "trace2_cmd_list_env_vars()" in git.c since they are no longer needed. Reviewed-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Jeff Hostetler <jeffhostetler@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff Hostetler committed
Mar 7, 2024 at 15:22 UTC
6111252cbf21abb175411da5c5a2cde65bb8f3e9
3 files changed
+6
-9
git.c
-6
@@ -373,8 +373,6 @@ static int handle_alias(int *argcp, const char ***argv)
373
strvec_pushv(&child.args, (*argv) + 1);
374
375
trace2_cmd_alias(alias_command, child.args.v);
376
- trace2_cmd_list_config();
377
- trace2_cmd_list_env_vars();
376
trace2_cmd_name("_run_shell_alias_");
377
378
ret = run_command(&child);
@@ -411,8 +409,6 @@ static int handle_alias(int *argcp, const char ***argv)
409
COPY_ARRAY(new_argv + count, *argv + 1, *argcp);
410
411
trace2_cmd_alias(alias_command, new_argv);
414
- trace2_cmd_list_config();
415
- trace2_cmd_list_env_vars();
412
413
*argv = new_argv;
414
*argcp += count - 1;
@@ -462,8 +458,6 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
458
459
trace_argv_printf(argv, "trace: built-in: git");
460
trace2_cmd_name(p->cmd);
465
- trace2_cmd_list_config();
466
- trace2_cmd_list_env_vars();
461
462
validate_cache_entries(the_repository->index);
463
status = p->fn(argc, argv, prefix);
t/t0211-trace2-perf.sh
+3
-3
@@ -320,7 +320,7 @@ test_expect_success 'expect def_params for normal builtin command' '
320
# Representative query command dispatched in handle_options()
321
# in git.c
322
#
323
-test_expect_failure 'expect def_params for query command' '
323
+test_expect_success 'expect def_params for query command' '
324
try_simple "git --man-path" "_query_"
325
'
326
@@ -337,7 +337,7 @@ test_expect_failure 'expect def_params for query command' '
337
# remote-curl.c rather than git.c. Confirm that we get def_param
338
# events from both layers.
339
#
340
-test_expect_failure 'expect def_params for remote-curl and _run_dashed_' '
340
+test_expect_success 'expect def_params for remote-curl and _run_dashed_' '
341
test_when_finished "rm prop.perf actual" &&
342
343
test_config_global "trace2.configParams" "cfg.prop.*" &&
@@ -366,7 +366,7 @@ test_expect_failure 'expect def_params for remote-curl and _run_dashed_' '
366
# an executable built from http-fetch.c. Confirm that we get
367
# def_param events from both layers.
368
#
369
-test_expect_failure 'expect def_params for http-fetch and _run_dashed_' '
369
+test_expect_success 'expect def_params for http-fetch and _run_dashed_' '
370
test_when_finished "rm prop.perf actual" &&
371
372
test_config_global "trace2.configParams" "cfg.prop.*" &&
trace2.c
+3
@@ -433,6 +433,9 @@ void trace2_cmd_name_fl(const char *file, int line, const char *name)
433
for_each_wanted_builtin (j, tgt_j)
434
if (tgt_j->pfn_command_name_fl)
435
tgt_j->pfn_command_name_fl(file, line, name, hierarchy);
436
+
437
+ trace2_cmd_list_config();
438
+ trace2_cmd_list_env_vars();
439
}
440
441
void trace2_cmd_mode_fl(const char *file, int line, const char *mode)