#include "git-compat-util.h"
#include "config.h"
#include "repository.h"
#include "run-command.h"
#include "sigchain.h"
#include "thread-utils.h"
#include "trace.h"
#include "trace2.h"
#include "trace2/tr2_cfg.h"
#include "trace2/tr2_cmd_name.h"
#include "trace2/tr2_ctr.h"
#include "trace2/tr2_dst.h"
#include "trace2/tr2_sid.h"
#include "trace2/tr2_sysenv.h"
#include "trace2/tr2_tgt.h"
#include "trace2/tr2_tls.h"
#include "trace2/tr2_tmr.h"
static int trace2_enabled;
static int trace2_redact = …;
static int tr2_next_child_id;
static int tr2_next_exec_id;
static int tr2_next_repo_id = …;
static struct tr2_tgt *tr2_tgt_builtins[] = …;
#define for_each_builtin(j, tgt_j) …
#define for_each_wanted_builtin(j, tgt_j) …
static int tr2_tgt_want_builtins(void)
{ … }
static void tr2_tgt_disable_builtins(void)
{ … }
static void tr2_tgt_emit_a_timer(const struct tr2_timer_metadata *meta,
const struct tr2_timer *timer,
int is_final_data)
{ … }
static void tr2_tgt_emit_a_counter(const struct tr2_counter_metadata *meta,
const struct tr2_counter *counter,
int is_final_data)
{ … }
static int tr2main_exit_code;
static void tr2main_atexit_handler(void)
{ … }
static void tr2main_signal_handler(int signo)
{ … }
void trace2_initialize_clock(void)
{ … }
void trace2_initialize_fl(const char *file, int line)
{ … }
int trace2_is_enabled(void)
{ … }
static const char *redact_arg(const char *arg)
{ … }
static const char **redact_argv(const char **argv)
{ … }
static void free_redacted_argv(const char **redacted, const char **argv)
{ … }
void trace2_cmd_start_fl(const char *file, int line, const char **argv)
{ … }
void trace2_cmd_exit_fl(const char *file, int line, int code)
{ … }
void trace2_cmd_error_va_fl(const char *file, int line, const char *fmt,
va_list ap)
{ … }
void trace2_cmd_path_fl(const char *file, int line, const char *pathname)
{ … }
void trace2_cmd_ancestry_fl(const char *file, int line, const char **parent_names)
{ … }
void trace2_cmd_name_fl(const char *file, int line, const char *name)
{ … }
void trace2_cmd_mode_fl(const char *file, int line, const char *mode)
{ … }
void trace2_cmd_alias_fl(const char *file, int line, const char *alias,
const char **argv)
{ … }
void trace2_cmd_list_config_fl(const char *file, int line)
{ … }
void trace2_cmd_list_env_vars_fl(const char *file, int line)
{ … }
void trace2_cmd_set_config_fl(const char *file, int line, const char *key,
const char *value)
{ … }
void trace2_child_start_fl(const char *file, int line,
struct child_process *cmd)
{ … }
void trace2_child_exit_fl(const char *file, int line, struct child_process *cmd,
int child_exit_code)
{ … }
void trace2_child_ready_fl(const char *file, int line,
struct child_process *cmd,
const char *ready)
{ … }
int trace2_exec_fl(const char *file, int line, const char *exe,
const char **argv)
{ … }
void trace2_exec_result_fl(const char *file, int line, int exec_id, int code)
{ … }
void trace2_thread_start_fl(const char *file, int line, const char *thread_base_name)
{ … }
void trace2_thread_exit_fl(const char *file, int line)
{ … }
void trace2_def_param_fl(const char *file, int line, const char *param,
const char *value, const struct key_value_info *kvi)
{ … }
void trace2_def_repo_fl(const char *file, int line, struct repository *repo)
{ … }
void trace2_region_enter_printf_va_fl(const char *file, int line,
const char *category, const char *label,
const struct repository *repo,
const char *fmt, va_list ap)
{ … }
void trace2_region_enter_fl(const char *file, int line, const char *category,
const char *label, const struct repository *repo, ...)
{ … }
void trace2_region_enter_printf_fl(const char *file, int line,
const char *category, const char *label,
const struct repository *repo,
const char *fmt, ...)
{ … }
void trace2_region_leave_printf_va_fl(const char *file, int line,
const char *category, const char *label,
const struct repository *repo,
const char *fmt, va_list ap)
{ … }
void trace2_region_leave_fl(const char *file, int line, const char *category,
const char *label, const struct repository *repo, ...)
{ … }
void trace2_region_leave_printf_fl(const char *file, int line,
const char *category, const char *label,
const struct repository *repo,
const char *fmt, ...)
{ … }
void trace2_data_string_fl(const char *file, int line, const char *category,
const struct repository *repo, const char *key,
const char *value)
{ … }
void trace2_data_intmax_fl(const char *file, int line, const char *category,
const struct repository *repo, const char *key,
intmax_t value)
{ … }
void trace2_data_json_fl(const char *file, int line, const char *category,
const struct repository *repo, const char *key,
const struct json_writer *value)
{ … }
void trace2_printf_va_fl(const char *file, int line, const char *fmt,
va_list ap)
{ … }
void trace2_printf_fl(const char *file, int line, const char *fmt, ...)
{ … }
void trace2_timer_start(enum trace2_timer_id tid)
{ … }
void trace2_timer_stop(enum trace2_timer_id tid)
{ … }
void trace2_counter_add(enum trace2_counter_id cid, uint64_t value)
{ … }
const char *trace2_session_id(void)
{ … }