Invoking UDB

This section describes how to invoke UDB from the shell. To use UDB in an integrated development environment, see the section for CLion, Eclipse, Emacs, or GoLand.

Common cases

To start UDB with no program to debug, run the udb program with no arguments.

To start debugging a program, pass it to udb on the command line:

udb PROGRAM

To specify the program together with its command-line arguments, use the --args option:

udb --args PROGRAM ARG1 ARG2 ...

To attach to a running program, use the --pid option:

udb --pid PID

To load a LiveRecorder recording, pass it to udb on the command line:

udb RECORDING.UNDO

UDB automatically detects whether the file named on the command line is a LiveRecorder recording. Alternatively, use the --load-file option.

Help options

--help, -h

Print documentation for command-line options and then exit.

--version, -v

Print version information and then exit.

Program options

--args PROGRAM ARG1 ARG2 ...

Specify the program to debug and its command-line arguments. This must be the last command-line option to udb.

--core CORE, -c CORE

Load the core dump CORE.

--load-file RECORDING

Load the LiveRecorder recording named by RECORDING.

--pid PID, -p PID

Attach the process with id PID.

Symbol options

--symbols SYMBOLS, -s SYMBOLS

Load symbols from SYMBOLS.

Command options

--command FILE, -x FILE

Execute commands from FILE, as if by the source command, after loading the program to debug.

--directory DIRECTORY, -d DIRECTORY

Add DIRECTORY to the list of directories searched by the source command.

--eval-command COMMAND, -ex COMMAND

Execute the UDB command COMMAND, after loading the program to debug.

You can specify multiple --command and --eval-command options. They are executed in the order that they are given on the command line.

--init-command FILE, -ix FILE

Execute commands from FILE, as if by the source command, before loading the program to debug.

--init-eval-command COMMAND, -iex COMMAND

Execute the UDB command COMMAND, before loading the program to debug.

You can specify multiple --init-command and --init-eval-command options. They are executed in the order that they are given on the command line.

-nx, -n

Do not execute commands from any initialization files.

That is, neither from the system-wide initialization files, nor the initialization files in the current directory, ./.udbinit and ./.gdbinit, nor from the initialization files in your home directory, ~/.udbinit and ~/.gdbinit.

-nh

Do not execute commands from the initialization files in your home directory, ~/.udbinit and ~/.gdbinit.

Mode options

--autorun

After attaching to or launching a program, continue the program automatically. See Autorun mode.

--batch, --batch-silent

Batch mode: udb does not take input from the user, and exits as soon as it has processed all the --command and --eval-command options. Implies --quiet. The --batch-silent option additionally suppresses all standard output from udb.

--defer-recording

Don’t start recording the program until the user enters the urecord command. See Starting UDB with recording disabled.

--quiet, -q, --silent

Don’t print version information at startup. See Quiet startup.

Configuration options

--async-io auto|true|false

The mode for handling asynchronous I/O in the program being debugged. See Debugging programs using asynchronous I/O with UDB.

--checkupdates auto|yes|no|never

Whether udb checks for a newer release at start-up. See Checking for updates.

--event-log-mode circular|straight

Behaviour when the event log is full. See Using a straight event log.

--instr-heapsize SIZE[K|M|G]

Size of the translation cache, or 0 to choose a suitable size. See Instrumentation heap size.

--keyfile KEYFILE

Use the license key from KEYFILE. By default, use the file named key in the same directory as udb.

--load-goto-end

After loading a LiveRecorder recording using the udb command line, automatically go to the end of execution history. See Going to the end of execution history after loading.

--max-event-log-size SIZE[K|M|G]

Maximum size of the event log, or 0 to choose a suitable size. See Configuring event log size.

--max-snapshots SNAPSHOTS

A hint to udb as to how many snapshots to keep. See Configuring snapshots.

--tmpdir-root DIRECTORY

The directory used by udb for its temporary files. See Temporary directory root.

--tty DEVICE

Use DEVICE for standard input and output to the program being debugged.