Remote Attach

If you use the attach feature, BugSeeker will be acting as the client and it will be connecting to an already running remote process that is started in server mode by supplying the proper JPDA options on the command-line.

Select Debug | Remote | Attach and a Remote Debug Attach dialog will appear. The Attach command is available only when there is a project of any project-type already loaded.

In the dialog that appears, you will be requested to select the desired transport-type if there are more than one transport type available on your platform. Once you have done that, you will now need to enter information about where and at which address the remote running process is listen on.

If you are using the socket transport type, you will be required to enter a hostname and port number of where you wish to connect BugSeeker to. By default, the hostname of the machine BugSeeker is run from will be supplied and you should change this value if you are trying to connect to a different machine.

If you are using the shared memory transport type, you will be required to enter the address name of where you wish to connect BugSeeker to.

At this point, if you have not already do so already you should now start your remote process in server mode using the transport type and connection information you supplied already. At minimum the -Xdebug -Xnoagent -Djava.compiler=NONE JVM option must be supplied when starting the remote process. What follows these JVM options is the special JPDA -Xrunjdwp... option that is specified differently depending on the transport type you selected.

If you are using the socket transport type, you need to supply the JVM option -Xrunjdwp:transport=dt_socket,server=y,address=<port>,suspend=y in addition to the JVM options already mentioned above. <port> is to be replaced with the agreed upon port number that this remote VM is to listen for incoming debug connections on. You are not required to enter the hostname as this is computed implicitly for you to be the name of the machine you are launching the process from. The suspend=y tells the remote process to start paused so that once you connect BugSeeker to this VM you will need to issue the Debug | Continue command to resume execution. If you would like the remote process to start immediately without waiting for BugSeeker to connect to it, use suspend=n.

If you are using the shared memory transport type, you need to supply the JVM option -Xrunjdwp:transport=dt_shmem,server=y,address=<name>,suspend=y in addition to the JVM options already mentioned above. <name> is to be replaced with the agreed upon shared memory address name you will be using to establish a debug connection. Remember that when using the shared memory transport type, the remote process you start up mush be on the same machine as the one BugSeeker is running because this is the restriction of the shared memory transport type.

Once you have successfully started your remote process, press the Attach button on the Remote Debug Attach dialog and BugSeeker will attempt to connect to this remote process using the connection information you supplied in this dialog. If all goes well, a new debug session tab shall appear above the status bar of the main application window and you should be able to debug this remote process. If BugSeeker is unable to connect to the remote VM and error message will usually be displayed explaining why BugSeeker failed to connect. If you are having trouble starting the remote process from command-line using the required JPDA options, please consult the JPDA reference and the troubleshooting section of this manual.