Blog - Remote Debugging
March 18, 2020

Guide to Remote Debugging and Development

High Performance Computing

With many businesses moving to remote working due to COVID-19, teams now face the challenge of supporting remote workers. For development teams, that can mean configuring remote system access for remote development and remote debugging.

Perforce products, including TotalView, are designed to help remote teams work together, no matter the circumstances.

In this article, we look at how to set up the TotalView RDC for remote development and debugging, as well as available VNC technologies teams can use to work remotely.

For more information on how to use other Perforce products remotely please visit perforce.com/covid-19-update.

Remote Debugging and Development With the TotalView Remote Display Client

Setting up remote access to internal workstations and servers in order to allow for remote development and remote debugging can often be a challenge. Security is always a concern but there may also be multiple "hops" involved in order to start from the computer you are sitting at and finally reaching the system you are developing on. TotalView's Remote Display Client (RDC) was built exactly for these remote access scenarios.

The RDC is a free tool shipped with TotalView that allows developers to easily establish a remote development session by automatically setting up a remote display environment from a remote system, across multiple connecting computers and to the users laptop. The RDC does this through the following three components:

  • RDC Client - A Remote Display window run on the computer you are sitting at.  Supported platforms include Linux x86 (32 and 64 bit), Windows and macOS.
  • RDC Server - An "invisible" component responsible for managing the movement of information between the Viewer, the remote host, and the Client. The Server can run on all systems that TotalView supports. For example, you can run the Client on a Windows system and set up a Viewer environment on an Linux x86-64 machine. 
  • RDC Viewer - A window that appears on the Client system. All interactions between this window and the system running TotalView are handled by the Server.
image-blog-remote-debugging

The RDC Client front-end allows you to define the name of the host where development will take place, zero or more "hosts in access order" that define connections that must be established in order to reach the final development host, and how TotalView should be run on the development system. 

image-blog-remote-debugging-totalview-remote-display-client

When instructed, the Client establishes all of the secure connections to the final development system and launches a backend Remote Display Server. Finally, the Client will launch the Viewer component on your laptop, allowing you to work on the remote development system.

The final remote display architecture setup by the RDC provides for an efficient debugging environment that can be used from home, while travelling, or just to access a cluster running in remote lab. 

For more information about using the TotalView Remote Display Client, please see the User Guide documentation.

See User Guide

Using VNC Technology to Access Remote Systems

Having the ability to efficiently work on remote systems is a requirement of many developers and scientists. Often, computing resources are in a lab, in the cloud, on the other side of the country, or maybe you are just working at home and need to access systems back in the office. 

There are several "remote screen" technologies that provide the ability to work on a virtual desktop on your laptop that is projecting a display running on a remote machine. These technologies are efficient and secure. 

VNC Technologies

Commercial versions such as NX from NoMachine provide nice solutions, but there are also many solid open source versions to choose from as well. Many of the open source solutions utilize Virtual Network Computing (VNC) technology which provide a remote graphical desktop that is displayed through a viewer running on a client system. Some popular open source VNC solutions include TightVNC, RealVNC and TigerVNC.  

Setting up a VNC environment is simple. First, the VNC server is installed on the remote system where the graphical desktop is to be run. Once installed, the VNC server is started it will begin listening to a specific network port on the host. 

Next, the VNC viewer is installed on the client's laptop or desktop. Finally, the VNC viewer is directed to connect to the remote server using the hostname and network port that the VNC server was configured to use. Secure network connections between the viewer and server are established using dependable secure shell (SSH) connections. The VNC viewer displays the remote graphical desktop and enables you to efficiently run your graphical applications on the remote system.

Additional Resources

Looking for additional support on setting up TotalView RDC remote debugging or remote development for you or your team, or have questions about TotalView?

Contact Us