forked from OSchip/llvm-project
210 lines
5.8 KiB
ReStructuredText
210 lines
5.8 KiB
ReStructuredText
:orphan:
|
|
|
|
lldb-server -- Server for LLDB Debugging Sessions
|
|
=================================================
|
|
|
|
.. program:: lldb-server
|
|
|
|
SYNOPSIS
|
|
--------
|
|
|
|
| :program:`lldb-server` v[ersion]
|
|
| :program:`lldb-server` g[dbserver] [*options*]
|
|
| :program:`lldb-server` p[latform] [*options*]
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
:program:`lldb-server` provides the server counterpart of the LLVM debugger.
|
|
The server runs and monitors the debugged program, while the user interfaces
|
|
with it via a client, either running locally or connecting remotely.
|
|
|
|
All of the code in the LLDB project is available under the Apache 2.0 License
|
|
with LLVM exceptions.
|
|
|
|
COMMANDS
|
|
--------
|
|
|
|
The first argument to lldb-server specifies a command to run.
|
|
|
|
.. option:: v[ersion]
|
|
|
|
Prints lldb-server version and exits.
|
|
|
|
.. option:: g[dbserver]
|
|
|
|
Runs the server using the gdb-remote protocol. LLDB can afterwards
|
|
connect to the server using *gdb-remote* command.
|
|
|
|
.. option:: p[latform]
|
|
|
|
Runs the platform server. LLDB can afterwards connect to the server using
|
|
*platform select*, followed by *platform connect*.
|
|
|
|
GDBSERVER COMMAND
|
|
-----------------
|
|
|
|
| :program:`lldb-server` g[dbserver] [*options*] [[*host*]:*port*] [[--] *program* *args*...]
|
|
|
|
CONNECTION
|
|
~~~~~~~~~~
|
|
|
|
.. option:: host:port
|
|
|
|
Specifies the hostname and TCP port to listen on. Obligatory unless another
|
|
listening option is used. If host is empty, *localhost* will be used. If port
|
|
is zero, a random port will be selected, and written as specified by --pipe
|
|
or --named-pipe options.
|
|
|
|
.. option:: --fd <fd>
|
|
|
|
Communicate over the given file descriptor instead of sockets.
|
|
|
|
.. option:: --named-pipe <name>
|
|
|
|
Write the listening port number to the specified named pipe.
|
|
|
|
.. option:: --pipe <fd>
|
|
|
|
Write the listening port number to the specified pipe (fd).
|
|
|
|
.. option:: --reverse-connect
|
|
|
|
Connect to the client instead of passively waiting for a connection. In this
|
|
case, [host]:port denotes the remote address to connect to.
|
|
|
|
GENERAL OPTIONS
|
|
~~~~~~~~~~~~~~~
|
|
|
|
.. option:: --help
|
|
|
|
Prints out the usage information and exits.
|
|
|
|
.. option:: --log-channels <channel1 categories...:channel2 categories...>
|
|
|
|
Channels to log. A colon-separated list of entries. Each entry starts with
|
|
a channel followed by a space-separated list of categories.
|
|
|
|
.. option:: --log-file <file>
|
|
|
|
Destination file to log to. If empty, log to stderr.
|
|
|
|
.. option:: --setsid
|
|
|
|
Run lldb-server in a new session.
|
|
|
|
TARGET SELECTION
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
.. option:: --attach <pid-or-name>
|
|
|
|
Attach to the process given by a (numeric) process id or a name.
|
|
|
|
.. option:: -- program args
|
|
|
|
Launch a program for debugging.
|
|
|
|
If neither of target options are used, :program:`lldb-server` is started
|
|
without a specific target. It can be afterwards instructed by the client
|
|
to launch or attach.
|
|
|
|
PLATFORM COMMAND
|
|
----------------
|
|
|
|
| :program:`lldb-server` p[latform] [*options*] --server --listen [[*host*]:*port*]
|
|
|
|
CONNECTION
|
|
~~~~~~~~~~
|
|
|
|
.. option:: --server
|
|
|
|
Run in server mode, handling multiple connections. If this is not specified,
|
|
lldb-server will accept only one connection and exit when it is finished.
|
|
|
|
.. option:: --listen <host>:<port>
|
|
|
|
Hostname and port to listen on. Obligatory. If *port* is zero, a random port
|
|
will be used.
|
|
|
|
.. option:: --socket-file <path>
|
|
|
|
Write the listening socket port number to the specified file.
|
|
|
|
GENERAL OPTIONS
|
|
~~~~~~~~~~~~~~~
|
|
|
|
.. option:: --log-channels <channel1 categories...:channel2 categories...>
|
|
|
|
Channels to log. A colon-separated list of entries. Each entry starts with
|
|
a channel followed by a space-separated list of categories.
|
|
|
|
.. option:: --log-file <file>
|
|
|
|
Destination file to log to. If empty, log to stderr.
|
|
|
|
GDB-SERVER CONNECTIONS
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. option:: --gdbserver-port <port>
|
|
|
|
Define a port to be used for gdb-server connections. Can be specified multiple
|
|
times to allow multiple ports. Has no effect if --min-gdbserver-port
|
|
and --max-gdbserver-port are specified.
|
|
|
|
.. option:: --min-gdbserver-port <port>
|
|
.. option:: --max-gdbserver-port <port>
|
|
|
|
Specify the range of ports that can be used for gdb-server connections. Both
|
|
options need to be specified simultaneously. Overrides --gdbserver-port.
|
|
|
|
.. option:: --port-offset <offset>
|
|
|
|
Add the specified offset to port numbers returned by server. This is useful
|
|
if the server is running behind a firewall, and a range of ports is redirected
|
|
to it with an offset.
|
|
|
|
EXAMPLES
|
|
--------
|
|
|
|
The server can be started in several modes.
|
|
|
|
In order to launch a new process inside the debugger, pass the path to it
|
|
and the arguments to the debugged executable as positional arguments.
|
|
To disambiguate between arguments passed to lldb and arguments passed
|
|
to the debugged executable, arguments starting with a - must be passed after
|
|
--. The server will launch the new executable and stop it immediately, waiting
|
|
for the client to connect.
|
|
|
|
lldb-server g :1234 /path/to/program program-argument -- --program-option
|
|
|
|
For convenience, passing the executable after -- is also supported.
|
|
|
|
lldb-server g :1234 -- /path/to/program program-argument --program-option
|
|
|
|
In order to attach to a running process, pass --attach along with the process
|
|
identifier or name. The process will be stopped immediately after starting
|
|
the server. Note that terminating the server will usually cause the process
|
|
to be detached and continue execution.
|
|
|
|
lldb-server g :1234 --attach 12345
|
|
lldb-server g :1234 --attach program-name
|
|
|
|
Use *gdb-remote* command to connect to the server:
|
|
|
|
(lldb) gdb-remote 1234
|
|
|
|
lldb-server can also be started without an inferior. In this case, the client
|
|
can select the target after connecting to the server. Note that some commands
|
|
(e.g. *target create*) will disconnect and launch a local lldb-server instead.
|
|
|
|
lldb-server g :1234
|
|
|
|
(lldb) gdb-remote 1234
|
|
(lldb) process launch a.out
|
|
|
|
SEE ALSO
|
|
--------
|
|
|
|
The LLDB project page https://lldb.llvm.org has many different resources
|
|
for :program:`lldb-server` users.
|