tracexec 1.0.0

Tracer for execve{,at} and pre-exec behavior, launcher for debuggers.
# Template profile for tracexec
# Note that the profile format is not stable yet.
# The latest profile template is available at: https://github.com/kxxt/tracexec/blob/main/config.toml


#
# Ptrace config applies to tui and log subcommands
# but doesn't apply to ebpf subcommand.
#
[ptrace]
# Enable seccomp_bpf to optimize performance, values: Auto, On or Off
# seccomp_bpf = "Auto"

#
# Debugger config
# Options about breakpoint feature.
#
[debugger]
# Set the default external command to run when using "Detach, Stop and Run Command" feature in Hit Manager
# {{PID}} will be replaced with the PID of the tracee
# default_external_command = "konsole -e gdb -ex cont -ex cont -p {{PID}}"


#
# Modifier config applies to both TUI and Log mode
#
[modifier]

# Only show successful exec events
# successful_only = false

# Experimental: Try to reproduce stdio in commandline.
#               This might result in a broken cmdline if pipes, sockets, etc. are involved.
# stdio_in_cmdline = false

# Experimental: Try to reproduce file descriptors in commandline.
#               This might result in a broken cmdline if pipes, sockets, etc. are involved.
# fd_in_cmdline = false

# Resolve /proc/self/exe symlink
# resolve_proc_self_exe = false

# Hide CLOEXEC file descriptors
# hide_cloexec_fds = true

# Show timestamp information
# timestamp.enable = false
# The format of timestamp when shown inline
# See https://docs.rs/chrono/latest/chrono/format/strftime/index.html for available options
# timestamp.inline_format = "hh:mm:ss"

# Collect cgroup information for each exec event.
# collect_cgroup = false

#
# Config for TUI mode
#
[tui]

# Keep the event list scrolled to bottom
# follow = false

# How to handle tracee when we exit? values: Wait, Terminate, Kill
# exit_handling = "Wait"

# The active pane when tui launches. values: Events, Terminal
# active_pane = "Terminal"

# The layout of TUI. values: Horizontal, Vertical
# layout = "Horizontal"

# Target frame rate. A positive floating-point number
# frame_rate = 60.0

# Max number of events to keep in TUI. (0=unlimited)
# max_events = 1_000_000

# Number of scrollback lines to keep in the pseudo terminal
# scrollback_lines = 1000

# Load a TUI theme from a file.
# Absolute paths are used as-is.
# Relative paths are resolved relative to the theme directories, in the following order:
#   1. $XDG_CONFIG_HOME/tracexec/themes/ (or $HOME/.config/tracexec/themes/)
#   2. $XDG_DATA_HOME/tracexec/themes/ (or $HOME/.local/share/tracexec/themes/)
#   3. /etc/tracexec/themes/
#   4. <path_to_tracexec_binary>/../share/tracexec/themes/ (usually /usr/share/tracexec/themes/)
# theme-file = "nord.toml"

# Inline TUI theme overrides. This uses the same structure as a theme file.
# Each style patches the built-in default theme, so unspecified properties keep
# their default values.
# theme = { app-title = { fg = "cyan" }, active-border = { fg = "light-cyan" } }

# Key bindings for the TUI
#
# Use a list to bind multiple shortcuts to the same action
[tui.keys]
# quit = "q"
# switch_pane = "Ctrl+s"
# switch_layout = "Alt+l"
# close_popup = "q"
# help = "F1"
# page_down = ["Ctrl+Down", "Ctrl+j", "PgDn"]
# page_up = ["Ctrl+Up", "Ctrl+k", "PgUp"]
# page_left = ["Ctrl+Left", "Ctrl+h"]
# page_right = ["Ctrl+Right", "Ctrl+l"]
# scroll_left = ["Left", "h"]
# scroll_right = ["Right", "l"]
# scroll_top = "Home"
# scroll_bottom = "End"
# scroll_start = "Shift+Home"
# scroll_end = "Shift+End"
# event_grow_pane = "g"
# event_shrink_pane = "s"
# event_send_ctrl_s = "Alt+s"
# event_toggle_follow = "f"
# event_search = "Ctrl+f"
# event_toggle_env = "e"
# event_toggle_cwd = "w"
# event_view_details = "v"
# event_go_to_parent = "u"
# event_backtrace = "t"
# event_copy = "c"
# event_breakpoints = "b"
# event_hits = "z"
# query_execute = "Enter"
# query_cancel = "Esc"
# query_toggle_case = "Alt+i"
# query_toggle_regex = "Alt+r"
# query_next_match = "n"
# query_prev_match = "p"
# query_clear = "Ctrl+u"
# details_scroll_down = ["Down", "j"]
# details_scroll_up = ["Up", "k"]
# details_next_tab = ["Right", "l"]
# details_prev_tab = ["Left", "h"]
# details_cycle_tab = "Tab"
# details_prev_field = "w"
# details_next_field = "s"
# details_copy = "c"
# details_view_parent = "u"
# next_item = ["Down", "j"]
# prev_item = ["Up", "k"]
# copy_choose = "Enter"
# copy_target_cmdline = "c"
# copy_target_cmdline_full_env = "o"
# copy_target_cmdline_stdio = "s"
# copy_target_cmdline_fds = "f"
# copy_target_env = "e"
# copy_target_env_diff = "d"
# copy_target_argv = "a"
# copy_target_argv_joined = "w"
# copy_target_filename = "n"
# copy_target_syscall_result = "r"
# copy_target_line = "l"
# go_back = "q"
# breakpoint_delete = ["Del", "d"]
# breakpoint_toggle_active = "Space"
# breakpoint_edit = ["Enter", "e"]
# breakpoint_new = "n"
# breakpoint_editor_save = "Enter"
# breakpoint_editor_cancel = "Ctrl+c"
# breakpoint_editor_toggle_stop = "Alt+s"
# breakpoint_editor_toggle_active = "Alt+a"
# hit_close = "q"
# hit_detach = "d"
# hit_resume = "r"
# hit_edit_default_command = "e"
# hit_run_default_command = "Enter"
# hit_run_custom_command = "Alt+Enter"
# hit_editor_save = "Enter"
# hit_editor_cancel = ["Esc", "Ctrl+c"]
# hit_editor_clear = "Ctrl+u"
# terminal_toggle_scrollback = "Ctrl+u"
# terminal_scroll_up = "Up"
# terminal_scroll_down = "Down"
# terminal_page_up = "PgUp"
# terminal_page_down = "PgDn"
# terminal_scroll_top = "Home"
# terminal_scroll_bottom = "End"

#
# Config for Log mode
#
[log]

# Try to show script interpreters indicated by shebang
# show_interpreter = false

# How much colors do you like? values: Normal, Less, More
# color_level = "Normal"

# Set the terminal foreground process group to tracee.
# The value here also applies to the collect subcommand
# foreground = true

# How to show file descriptors:
# Diff: show the diff of fds between tracee and original std{in/out/err}.
# Show: show all the file descriptors
# Hide: show nothing
# fd_display = "Diff"

# How to show environment variables:
# Diff: show the diff of env between tracee and original env.
# Show: show all the env vars
# Hide: show nothing
# env_display = "Diff"

# Print commandline that (hopefully) reproduces what was executed.
# This option supersedes env_display and show_argv
# show_cmdline = false

# Show comm of the process before exec
# show_comm = true

# Show the filename to be executed
# show_filename = false

# Show argv of the exec
# show_argv = true

# Show the current working dir of tracee
# show_cwd = false

# Decode errno of exec failure
# decode_errno = true