All Manuals > LispWorks IDE User Guide > 29 Remote Debugging


29.3 Editor commands for remote debugging

Apart from Connect Remote Debugging and Reconnect Remote Listener, the "remote" editor commands expect there to be an open connection to a client. This may be opened by Connect Remote Debugging, by an explicit call to dbg:ide-connect-remote-debugging, by using the Preferences dialog Debugger options Remote tab (see Remote Debugging Client), or by a connection from a client (after calling dbg:start-ide-remote-debugging-server on the IDE side).

The command Connect Remote Debugging allows you to connect to a remote client from the Editor. It prompts for a host name and a port (using the value of dbg:*default-client-remote-debugging-server-port* as the default) and calls dbg:ide-connect-remote-debugging, with :open-a-listener t and mp:*background-standard-output* as the log-stream. Note that the client side must have already called dbg:start-client-remote-debugging-server for this to work.

The commands Remote Evaluate Defun, Remote Evaluate Region, Remote Evaluate Buffer and Remote Evaluate Last Form send forms from the editor for evaluation on the client side. They work like their ordinary counterparts (commands without "Remote "), but they use dbg:ide-eval-form-in-remote to evaluate the forms.

The commands Remote Evaluate Defun In Listener, Remote Evaluate Last Form In Listener, Remote Evaluate Region In Listener evaluate forms in a Remote Listener. They do the same as their ordinary counterparts (commands without "Remote "), but look for a remote listener. If there is no current remote listener, they open one (using dbg:ide-open-a-listener).

Normally you have only one remote debugging connection, so there is no ambiguity about which connection to use for these commands. If you have more than debugging connection, you can use the command Set Default Remote Debugging Connection to set which connection the commands above use (which calls dbg:ide-set-default-remote-debugging-connection). If no default is set, the commands use the last connection that was opened.

The Editor command Reconnect Remote Listener can be used only in a Remote Listener after the client side has disconnected, which may be either because the read-eval-print loop on the client side exited, or the connection was closed (which may also be because the client crashed). The command tries to reconnect the Listener to the same client, which can work if the connection is still open, if there is another connection to the same client, or if the client is listening for connections (that is the client called dbg:start-client-remote-debugging-server).

Note that the IDE recognizes the client only by its hostname and port number. Therefore, the reconnection is not necessarily to the same invocation on the client side. It may be a different invocation of the same application or a different application, and if the configuration of the network changes, it may be a different device altogether.

LispWorks IDE User Guide (Macintosh version) - 13 Sep 2017