Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

PTP/designs/debugger launch

< PTP‎ | designs
Revision as of 15:44, 21 July 2011 by Unnamed Poltroon (Talk) (Debug Job Submission)

Debugger Launch Process

In the following description, the term "debugger client" refers to the Eclipse client side of the parallel debugger. The term "sdm" or "debugger server" refers to the Scalable Debug Manager (SDM) or server side of the parallel debugger.

When the user hits the debug button, debug launch proceeds as follows:

  1. The debugger client is initialized
  2. The job is submitted by calling IResourceManager#submitJob()
  3. Optionally, debugger launch help actions are performed

Debugger Initialization

Debugger initialization is performed on the client side of the debugger. It comprises the following steps:

  1. If port forwarding is enabled on the connection, a remote port will be forwarded to the debugger session port
  2. The debugger arguments are computed (including adding the remote port obtained in step #1) and these are saved to the launch configuration in the DEBUGGER_ARGS launch attribute
  3. The debugger executable (as specified in the Debugger tab) is verified on the target machine. If the executable does not exist, an exception is thrown

Debug Job Submission

The debug job is submitted using IResourceManager#submitJob() with mode set to "debug". It is up to the resource manager to determine what command will be used and what arguments will be passed to it. In the case of the Open MPI/MPICH2 RM's, the command submitted is the "mpirun" command which is passed the debugger executable and supplied with the debugger arguments from the launch configuration.

Debugger Launch Help

  1. If the RM has specified "needsDebuggerLaunchHelp" AND the job state changes to RUNNING, the following steps are performed:
  1. A routing file is created that contains the tuples (index, host, port) for each process. The host information is obtained from the IPJob#getProcessNodeId() method (the other values are computed). The routing file is assumed to be in a location that is accessible to all sdm processes.
  2. The sdm master process is launched on the target machine using an IRemoteProcessBuilder.

Back to the top